検索
ホームページphp教程php手册非常に微妙な PHP 再帰呼び出しと静的変数の使用
非常に微妙な PHP 再帰呼び出しと静的変数の使用Jun 13, 2016 am 11:56 AM
phpそしてコード使用変数コピー移行再帰静的

コードをコピーします コードは次のとおりです:


//次のコードは非常に美しい画像を描画します。 leaf
// PI 角度の 1 分の値を定義します
define("PII", M_PI/180);
// 新しい画像リソースを作成し、その背景を白、前景色を次のように定義しますblack
$im = imagecreate(670,500);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$g = imagecolorallocate($im, 0x00, 0x00, 0x00); >// 以下より例 コードより、初期値 $x, $y, $L, $a がそれぞれ 300, 500, 100, 270 に分割されていることが分かります
functiondrawLeaf($g, $x, $y, $L, $a ) {
グローバル $im;
$s1 = 2; 3;
$s3 = 1.2;
if($L > $s1) {
// 上の葉の位置を計算します
$x2 = $x $L * cos($a * PII);
$y2 = $y $ L * sin($a * PII);
$x2R = $x2 $L / $s2 * cos(($a $B) * PII); 🎜>$y2R = $y2 $L / $s2 * sin(($a $B) * PII);
$x2L = $x2 $L / $s2 * cos(($a - $B) * PII);
$y2L = $y2 $L / $s2 * sin(($a - $B) * PII);
// 以下の葉の位置を計算します
$x1 = $ x $L / $s2 * cos($a * PII);
$y1 = $y $L / $s2 * sin($a * PII); * cos(($a - $B) * PII);
$y1L = $y1 $L / $s2 * sin(($a - $B) * PII); L / $s2 * cos(($a $B) * PII);
$y1R = $y1 $L / $s2 * sin(($a $B) * PII);葉の主茎と葉の表面それぞれ
ImageLine($im, (int )$x, (int)$y, (int)$x2, (int)$y2, $g); $im, (int)$x2, (int)$y2, (int)$ x2R, (int)$y2R, $g);
ImageLine($im, (int)$x2, (int)$y2 , (int)$x2L, (int)$y2L, $g);
ImageLine($im, (int)$x1, (int)$y1, (int)$x1L, (int)$y1L, $ g);
ImageLine($im, (int)$x1, (int )$y1, (int)$x1R, (int)$y1R, $g); // 自身を再帰的に呼び出します
drawLeaf($g, $x2, $y2, $L / $s3, $a $C);
drawLeaf($g, $x2R, $y2R, $L / $s2, $a $B);
drawLeaf($g, $x2L, $y2L, $L / $s2 , $a - $B);
drawLeaf($g, $x1L, $y1L, $L / $s2, $a - $B);
drawLeaf($g, $x1R, $y1R, $ L / $s2, $a $B);
}
}
// インスタンス化
drawLeaf($) g, 300, 500, 100, 270);
header("Content -type: image/png");

PHP プログラミングでは、静的変数を使用した再帰呼び出しがよく使用されます。静的変数の意味については、PHP マニュアルを参照してください。次のコードが再帰変数と静的変数の理解に役立つことを願っています



コードをコピーします

コードは次のとおりです:


header( "Content-type: text/plain");
function static_function () {
static $i = 0;

if ($i echo $i . "n" ;
static_function();

} } static_function(); このコードは 1 から 10 までの数値を出力します。 static_function 関数を 2 回目に実行すると、変数 i は静的変数であるため解放されずに保持され、自動インクリメントされた値が取得されます。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
如何在技嘉主板上设置键盘启动功能 (技嘉主板启用键盘开机方式)如何在技嘉主板上设置键盘启动功能 (技嘉主板启用键盘开机方式)Dec 31, 2023 pm 05:15 PM

技嘉的主板怎么设置键盘开机首先,要支持键盘开机,一定是PS2键盘!!设置步骤如下:第一步:开机按Del或者F2进入bios,到bios的Advanced(高级)模式普通主板默认进入主板的EZ(简易)模式,需要按F7切换到高级模式,ROG系列主板默认进入bios的高级模式(我们用简体中文来示范)第二步:选择到——【高级】——【高级电源管理(APM)】第三步:找到选项【由PS2键盘唤醒】第四步:这个选项默认是Disabled(关闭)的,下拉之后可以看到三种不同的设置选择,分别是按【空格键】开机、按组

php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

CS玩家的首选:推荐的电脑配置CS玩家的首选:推荐的电脑配置Jan 02, 2024 pm 04:26 PM

1.处理器在选择电脑配置时,处理器是至关重要的组件之一。对于玩CS这样的游戏来说,处理器的性能直接影响游戏的流畅度和反应速度。推荐选择IntelCorei5或i7系列的处理器,因为它们具有强大的多核处理能力和高频率,可以轻松应对CS的高要求。2.显卡显卡是游戏性能的重要因素之一。对于射击游戏如CS而言,显卡的性能直接影响游戏画面的清晰度和流畅度。建议选择NVIDIAGeForceGTX系列或AMDRadeonRX系列的显卡,它们具备出色的图形处理能力和高帧率输出,能够提供更好的游戏体验3.内存电

广联达软件电脑配置推荐;广联达软件对电脑的配置要求广联达软件电脑配置推荐;广联达软件对电脑的配置要求Jan 01, 2024 pm 12:52 PM

广联达软件是一家专注于建筑信息化领域的软件公司,其产品被广泛应用于建筑设计、施工、运营等各个环节。由于广联达软件功能复杂、数据量大,对电脑的配置要求较高。本文将从多个方面详细阐述广联达软件的电脑配置推荐,以帮助读者选择适合的电脑配置处理器广联达软件在进行建筑设计、模拟等操作时,需要进行大量的数据计算和处理,因此对处理器的要求较高。推荐选择多核心、高主频的处理器,如英特尔i7系列或AMDRyzen系列。这些处理器具有较强的计算能力和多线程处理能力,能够更好地满足广联达软件的需求。内存内存是影响计算

主板上的数字音频输出接口-SPDIF OUT主板上的数字音频输出接口-SPDIF OUTJan 14, 2024 pm 04:42 PM

主板上SPDIFOUT连接线序最近我遇到了一个问题,就是关于电线的接线顺序。我上网查了一下,有些资料说1、2、4对应的是out、+5V、接地;而另一些资料则说1、2、4对应的是out、接地、+5V。最好的办法是查看你的主板说明书,如果找不到说明书,你可以使用万用表进行测量。首先找到接地,然后就可以确定其他的接线顺序了。主板vdg怎么接线连接主板的VDG接线时,您需要将VGA连接线的一端插入显示器的VGA接口,另一端插入电脑的显卡VGA接口。请注意,不要将其插入主板的VGA接口。完成连接后,您可以

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール