最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP遞歸算法的詳細(xì)示例分析

 更新時(shí)間:2013年02月19日 22:07:39   作者:  
我們?cè)诮ㄔO(shè)一個(gè)網(wǎng)站的時(shí)候,程序員們首選的當(dāng)屬PHP語(yǔ)言。我們對(duì)PHP還是比較熟悉的,接下來(lái)我們將會(huì)為大家介紹一下PHP遞歸算法

我們?cè)诮ㄔO(shè)一個(gè)網(wǎng)站的時(shí)候,程序員們首選的當(dāng)屬PHP語(yǔ)言。我們對(duì)PHP還是比較熟悉的,接下來(lái)我們將會(huì)為大家介紹一下PHP遞歸算法。PHP,一個(gè)嵌套的縮寫名稱,是英文超級(jí)文本預(yù)處理語(yǔ)言(PHP:Hypertext Preprocessor)的縮寫。

PHP 是一種 HTML 內(nèi)嵌式的語(yǔ)言,是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語(yǔ)言,語(yǔ)言的風(fēng)格有類似于C語(yǔ)言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運(yùn)用。PHP 獨(dú)特的語(yǔ)法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語(yǔ)法。
它可以比 CGI 或者 Perl 更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;與同樣是嵌入HTML文檔的腳本語(yǔ)言JavaScript相比,PHP在服務(wù)器端執(zhí)行,充分利用了服務(wù)器的性能;PHP執(zhí)行引擎還會(huì)將用戶經(jīng)常訪問(wèn)的PHP程序駐留在內(nèi)存中,其他用戶再一次訪問(wèn)這個(gè)程序時(shí)就不需要重新編譯程序了,只要直接執(zhí)行內(nèi)存中的代碼就可以了,這也是PHP高效率的體現(xiàn)之一。

PHP具有非常強(qiáng)大的功能,所有的CGI或者JavaScript的功能PHP都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)。我們這里詳細(xì)的介紹一下PHP遞歸算法。

PHP遞歸算法代碼:

復(fù)制代碼 代碼如下:

< ?php   
//定義PI一分的角度的值 define("PII",M_PI/180);   
//新建圖像資源,并定義其背景為白色,前景色為黑色   
$im=imagecreate(670,500);   
$white=imagecolorallocate($im,0xFF,0xFF,0xFF); 
$g=imagecolorallocate($im,0x00,0x00,0x00);   
//從下面實(shí)例化的代碼可以得知,初始值$x,$y,$L,$a別分為300,500,100,270   
functiondrawLeaf($g,$x,$y,$L,$a)  
{ global$im; $B=50; $C=9; $s1=2; $s2=3; $s3=1.2;   
if($L>$s1){   
//計(jì)算葉子的定位上面   
$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);   
//計(jì)算葉子的定位下面  
$x1=$x+$L/$s2*cos($a*PII);   
$y1=$y+$L/$s2*sin($a*PII);  
$x1L=$x1+$L/$s2*cos(($a-$B)*PII);   
$y1L=$y1+$L/$s2*sin(($a-$B)*PII);   
$x1R=$x1+$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);
ImageLine($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);   
//再次遞歸調(diào)用本身   
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);   
}   
}   
//實(shí)例化   
drawLeaf($g,300,500,100,270);  
 header("Content-type:image/png");   
imagepng($im);   
?>

在我個(gè)人的PHP編程經(jīng)驗(yàn)中,遞歸調(diào)用常常與靜態(tài)變量使用。靜態(tài)變量的含義可以參考PHP手冊(cè)。希望下面的代碼,會(huì)更有利于對(duì)PHP遞歸算法以及靜態(tài)變量的理解
復(fù)制代碼 代碼如下:

header("Content-type:text/plain"); functionstatic_function()  
{   
static$i=0;   
if($i++<10)  
{   
echo$i."\n";  
static_function();   
}   
}   
static_function(); 

這段PHP遞歸算法代碼會(huì)如數(shù)輸出1到10的數(shù)字。在static_function函數(shù)第二次運(yùn)行時(shí),變量i由于是靜態(tài)變量,所以仍被保留不被釋放,進(jìn)而可以得到自增的值。

相關(guān)文章

  • PHP擴(kuò)展Memcache分布式部署方案

    PHP擴(kuò)展Memcache分布式部署方案

    memcached雖然稱為“分布式”緩存服務(wù)器,但服務(wù)器端并沒(méi)有“分布式”功能。服務(wù)器端僅包括內(nèi)存存儲(chǔ)功能,其實(shí)現(xiàn)非常簡(jiǎn)單。至于memcached的分布式,則是完全由客戶端程序庫(kù)實(shí)現(xiàn)的。這種分布式是memcached的最大特點(diǎn)。
    2015-12-12
  • php+mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)無(wú)限分類的方法

    php+mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)無(wú)限分類的方法

    這篇文章主要介紹了php+mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)無(wú)限分類的方法,包含完整的節(jié)點(diǎn)操作技巧以及相應(yīng)的應(yīng)用方法實(shí)例,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • php設(shè)計(jì)模式 Mediator (中介者模式)

    php設(shè)計(jì)模式 Mediator (中介者模式)

    用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互,使各對(duì)象不需要顯式地相互引用從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互
    2011-06-06
  • PHP使用xmllint命令處理xml與html的方法

    PHP使用xmllint命令處理xml與html的方法

    這篇文章主要介紹了PHP使用xmllint命令處理xml與html的方法,較為詳細(xì)的講述了使用xmllint工具的各種命令處理XML文件與html的方法,是非常具有實(shí)用價(jià)值的技巧,需要的朋友可以參考下
    2014-12-12
  • 前后端分離和跨域問(wèn)題的詳細(xì)解決方案(CORS的原理)

    前后端分離和跨域問(wèn)題的詳細(xì)解決方案(CORS的原理)

    前后端跨域問(wèn)題由瀏覽器同源策略而來(lái),下面這篇文章主要給大家介紹了關(guān)于前后端分離和跨域問(wèn)題的詳細(xì)解決方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • php獲取textarea的值并處理回車換行的方法

    php獲取textarea的值并處理回車換行的方法

    這篇文章主要介紹了php獲取textarea的值并處理回車換行的方法,涉及到對(duì)特殊字符的轉(zhuǎn)換與處理,需要的朋友可以參考下
    2014-10-10
  • 解析mysql中UNIX_TIMESTAMP()函數(shù)與php中time()函數(shù)的區(qū)別

    解析mysql中UNIX_TIMESTAMP()函數(shù)與php中time()函數(shù)的區(qū)別

    本篇文章是對(duì)mysql中UNIX_TIMESTAMP()函數(shù)與php中time()函數(shù)的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php進(jìn)程daemon化的正確實(shí)現(xiàn)方法

    php進(jìn)程daemon化的正確實(shí)現(xiàn)方法

    守護(hù)進(jìn)程(Daemon)是運(yùn)行在后臺(tái)的一種特殊進(jìn)程。下面這篇文章主要給大家介紹了關(guān)于php進(jìn)程daemon化的正確實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • 解決PHP Opcache 緩存刷新、代碼重載出現(xiàn)無(wú)法更新代碼的問(wèn)題

    解決PHP Opcache 緩存刷新、代碼重載出現(xiàn)無(wú)法更新代碼的問(wèn)題

    這篇文章主要介紹了解決PHP Opcache 緩存刷新、代碼重載出現(xiàn)的無(wú)法更新代碼的問(wèn)題,幫助大家更好的理解和學(xué)習(xí)php,感興趣的朋友可以了解下
    2020-08-08
  • PHP array 的加法操作代碼

    PHP array 的加法操作代碼

    PHP array 的加法操作過(guò)程中的一個(gè)問(wèn)題,大家可以繼續(xù)往下看。
    2010-07-07

最新評(píng)論

普陀区| 若尔盖县| 蒙阴县| 辽阳县| 浙江省| 湘阴县| 永丰县| 弥勒县| 新源县| 鄂托克前旗| 安远县| 临沂市| 长治市| 福贡县| 龙州县| 甘肃省| 张家口市| 白河县| 思茅市| 蕲春县| 临清市| 教育| 安徽省| 尉犁县| 喀喇沁旗| 鹤山市| 三江| 常德市| 黄石市| 浮梁县| 张北县| 沂水县| 宁远县| 汝州市| 扎兰屯市| 都昌县| 吉林市| 蒙阴县| 襄樊市| 安阳市| 永济市|