数码资讯
非常聪明的PHP递归调用和静态变量使用
复制代码代码如下所示: < PHP 下面的代码将绘制一个美丽的叶子 圆周率值的定义 定义(PII 新的图像资源,并定义背景是白色的,黑色的 $我=画面欣赏(670500); 白色= imagecolorallocate美元($ IM,0xFF,0xFF,0xff); $ G = imagecolor
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
复制代码代码如下所示:
< PHP
下面的代码将绘制一个美丽的叶子
圆周率值的定义
定义(PII
新的图像资源,并定义背景是白色的,黑色的
$我=画面欣赏(670500);
白色= imagecolorallocate美元($ IM,0xFF,0xFF,0xff);
$ G = imagecolorallocate($ IM,0x00,0x00,0x00);
我们可以从下面的实例化代码中学习,初始值为x,$,$,$,分别是300, 500, 100,270。
功能drawleaf($ G $ X,Y元,美元升,美元){
全球即时通讯;
$ = 50;
$=9;
$ = 2;
$ S2 = 3;
$ S3 = 1.2;
如果($ $ S1){
位置在上述叶子上计算。
$ x2 x美元+ $ L * cos($ * PII);
$ Y2 = Y元+ $ L *罪($ * PII);
x2r美元美元美元= x2 + L / $ S2×cos(($ + $)* PII);
Y2 Y2 +美元美元美元= L / $ S2 *罪(($ + $)* PII);
美元美元美元X2L = x2 + L / $ S2×cos(($ - $)* PII);
美元美元美元Y2L = Y2 + L / $ S2 *罪(($ - $)* PII);
下面的定位计算叶
$ X1 = X元+ $ L / $ S2×cos($ * PII);
$ Y1 = Y元+ $ L / $ S2 *罪($ * PII);
x1l美元美元美元= X1 + L / $ S2×cos(($ - $)* PII);
y1l美元美元美元= Y1 + L / $ S2 *罪(($ - $)* PII);
x1r美元美元美元= X1 + L / $ S2×cos(($ + $)* PII);
Y1 Y1 +美元美元美元= L / $ S2 *罪(($ + $)* PII);
不要画树干/树叶和树叶。
imageline($ IM(int)X元,(int)Y元,(int)为X2,Y2(int)$,$ G);
imageline($ IM(int)为X2,Y2(int)$,(int)x2r美元,(int)Y2美元,$ G);
imageline($ IM(int)为X2,Y2(int)$,$ X2L(int),(int)Y2L美元,$ G);
imageline($ IM(int)为X1,Y1(int)$,(int)x1l美元,(int)y1l美元,$ G);
imageline($ IM(int)为X1,Y1(int)$,(int)x1r美元,(int)Y1美元,$ G);
再次递归调用自身
drawleaf($ G $ x2,y2美元美元,L为S3,$ + $ C);
drawleaf($ G,x2r美元美元美元,Y2,L为S2,$ + $ B);
drawleaf($ G $ X2L Y2L美元,美元,L为S2,$ - $ B);
drawleaf($ G,x1l美元美元美元,y1l,L为S2,$ - $ B);
drawleaf($ G,x1r美元美元美元,Y1,L为S2,$ + $ B);
}
}
实例化
drawleaf($ G,300, 500, 100,270);
页眉(内容类型:图像);
imagepng(为我);
>
在PHP编程中,递归调用经常与静态变量一起使用。静态变量的含义可以参考PHP手册。希望下面的代码更有助于理解递归和静态变量。
复制代码代码如下所示:
页眉(内容类型:文本);
功能static_function(){
静态$ i = 0;
如果($ + + < 10){
$ ;
static_function();
}
}
static_function();这段代码会输出一个数为1到10。当static_function函数运行第二次,变我依然没有解除,因为它是一个静态变量,然后自增值可以得到。
< PHP
下面的代码将绘制一个美丽的叶子
圆周率值的定义
定义(PII
新的图像资源,并定义背景是白色的,黑色的
$我=画面欣赏(670500);
白色= imagecolorallocate美元($ IM,0xFF,0xFF,0xff);
$ G = imagecolorallocate($ IM,0x00,0x00,0x00);
我们可以从下面的实例化代码中学习,初始值为x,$,$,$,分别是300, 500, 100,270。
功能drawleaf($ G $ X,Y元,美元升,美元){
全球即时通讯;
$ = 50;
$=9;
$ = 2;
$ S2 = 3;
$ S3 = 1.2;
如果($ $ S1){
位置在上述叶子上计算。
$ x2 x美元+ $ L * cos($ * PII);
$ Y2 = Y元+ $ L *罪($ * PII);
x2r美元美元美元= x2 + L / $ S2×cos(($ + $)* PII);
Y2 Y2 +美元美元美元= L / $ S2 *罪(($ + $)* PII);
美元美元美元X2L = x2 + L / $ S2×cos(($ - $)* PII);
美元美元美元Y2L = Y2 + L / $ S2 *罪(($ - $)* PII);
下面的定位计算叶
$ X1 = X元+ $ L / $ S2×cos($ * PII);
$ Y1 = Y元+ $ L / $ S2 *罪($ * PII);
x1l美元美元美元= X1 + L / $ S2×cos(($ - $)* PII);
y1l美元美元美元= Y1 + L / $ S2 *罪(($ - $)* PII);
x1r美元美元美元= X1 + L / $ S2×cos(($ + $)* PII);
Y1 Y1 +美元美元美元= L / $ S2 *罪(($ + $)* PII);
不要画树干/树叶和树叶。
imageline($ IM(int)X元,(int)Y元,(int)为X2,Y2(int)$,$ G);
imageline($ IM(int)为X2,Y2(int)$,(int)x2r美元,(int)Y2美元,$ G);
imageline($ IM(int)为X2,Y2(int)$,$ X2L(int),(int)Y2L美元,$ G);
imageline($ IM(int)为X1,Y1(int)$,(int)x1l美元,(int)y1l美元,$ G);
imageline($ IM(int)为X1,Y1(int)$,(int)x1r美元,(int)Y1美元,$ G);
再次递归调用自身
drawleaf($ G $ x2,y2美元美元,L为S3,$ + $ C);
drawleaf($ G,x2r美元美元美元,Y2,L为S2,$ + $ B);
drawleaf($ G $ X2L Y2L美元,美元,L为S2,$ - $ B);
drawleaf($ G,x1l美元美元美元,y1l,L为S2,$ - $ B);
drawleaf($ G,x1r美元美元美元,Y1,L为S2,$ + $ B);
}
}
实例化
drawleaf($ G,300, 500, 100,270);
页眉(内容类型:图像);
imagepng(为我);
>
在PHP编程中,递归调用经常与静态变量一起使用。静态变量的含义可以参考PHP手册。希望下面的代码更有助于理解递归和静态变量。
复制代码代码如下所示:
页眉(内容类型:文本);
功能static_function(){
静态$ i = 0;
如果($ + + < 10){
$ ;
static_function();
}
}
static_function();这段代码会输出一个数为1到10。当static_function函数运行第二次,变我依然没有解除,因为它是一个静态变量,然后自增值可以得到。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。