検索
ホームページ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 までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

メモ帳++7.3.1

メモ帳++7.3.1

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