麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

php函數-系統函數 遞歸函數 重用函數 構造函數使用

2024-09-04 11:48:51
字體:
來源:轉載
供稿:網友

1.內部函數:PHP可以在函數內部再聲明函數,目的就是在函數內部調用,用來幫助外部函數完成一些子功能.

2.遞歸函數:在自己內部調用自己的函數名

3.重用函數:require:用于靜態包含,include:用于動態包含,require_once:用于靜態包含,只包含一次,include_once:用于動態包含,只包含一次.

4.一些系統函數的使用:資源=opendir("目錄名"),readdir(資源)

php內部函數代碼如下:

  1. function score($php,$java,$dotnet
  2.  { 
  3.   function php($php
  4.   { 
  5.    if($php>60) 
  6.     return "及格"
  7.    else 
  8.     return "不及格"
  9.   } 
  10.   function java($java
  11.   { 
  12.    if($java>60) 
  13.     return "及格"
  14.    else 
  15.     return "不及格"
  16.   } 
  17.   function dotnet($dotnet
  18.   { 
  19.    if($dotnet>60) 
  20.     return "及格"
  21.    else 
  22.     return "不及格"
  23.   } 
  24.    
  25.   $total=$php+$java+$dotnet
  26.   $agv=$total/3; 
  27.   echo "你的php成績是{$php}分,".php($php)."<br>"
  28.   echo "你的java成績是{$java}分,".java($java)."<br>"
  29.   echo "你的dotnet成績是{$dotnet}分,".dotnet($dotnet)."<br>"
  30.   echo "你的總分是:{$total}<br>"
  31.   echo "你的平均分是:{$agv}<br>"
  32.  } 
  33.   score(50,90,70); 
  34.  
  35.  //遞歸函數 
  36.  function demo($num
  37.  { 
  38.   echo $num."<br>"
  39.   if($num>0) 
  40.    demo($num-1); 
  41.   else 
  42.    echo "--------------------------------<br>"
  43.   echo $num."<br>"
  44.  } 
  45.  demo(10); 
  46.  
  47.  function total($dirname,&$dirnum,&$filename
  48.  { 
  49.   $dir=opendir($dirname); 
  50.   readdir($dir)."<br>"
  51.   readdir($dir)."<br>"
  52.   while($filename=readdir($dir)) 
  53.   { 
  54.    $newfile=$dirname."/".$filename
  55.    echo $filename."<br>"
  56.    if(is_dir($filename 
  57.   } 
  58.  
  59.  } 
  60.  $dirnum=0; 
  61.  $filenum=0; 
  62.  total("c:/windows",$dirnum,$filenum); 
  63.  echo "目錄總數:".$dirnum."<br>"
  64.  echo "文件總數:".$filenum."<br>"

構造函數和析構函數

構造函數:void __construct ([ mixed $args [, $... ]] )

PHP 5 允行開發者在一個類中定義一個方法作為構造函數,具有構造函數的類會在每次創建對象時先調用此方法,所以非常適合在使用對象之前做一些初始化工作.

Note:如果子類中定義了構造函數則不會暗中調用其父類的構造函數,要執行父類的構造函數,需要在子類的構造函數中調用 parent::__construct().

Example #1 使用新標準的構造函數,代碼如下:

  1. <?php 
  2. class BaseClass { 
  3.    function __construct() { 
  4.        print "In BaseClass constructorn"
  5.    } 
  6.  
  7. class SubClass extends BaseClass { 
  8.    function __construct() { 
  9.        parent::__construct(); 
  10.        print "In SubClass constructorn"
  11.    }//開源代碼Vevb.com 
  12.  
  13. $obj = new BaseClass(); 
  14. $obj = new SubClass(); 
  15. ?> 

為了實現向后兼容性,如果 PHP 5 在類中找不到 __construct() 函數,它就會嘗試尋找舊式的構造函數,也就是和類同名的函數,因此唯一會產生兼容性問題的情況是:類中已有一個名為 __construct() 的方法,但它卻又不是構造函數.

析構函數:void __destruct ( void )

PHP 5 引入了析構函數的概念,這類似于其它面向對象的語言,如 C++,析構函數會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執行.

Example #2 析構函數示例,代碼如下:

  1. <?php 
  2. class MyDestructableClass { 
  3.    function __construct() { 
  4.        print "In constructorn"
  5.        $this->name = "MyDestructableClass"
  6.    } 
  7.  
  8.    function __destruct() { 
  9.        print "Destroying " . $this->name . "n"
  10.    } 
  11.  
  12. $obj = new MyDestructableClass(); 
  13. ?> 

和構造函數一樣,父類的析構函數不會被引擎暗中調用,要執行父類的析構函數,必須在子類的析構函數體中顯式調用 parent::__destruct().

Note:析構函數在腳本關閉時調用,此時所有的頭信息已經發出.

Note:試圖在析構函數中拋出一個異常會導致致命錯誤.

  1. <?php 
  2. class Foobar { 
  3.     public $baz
  4.     function __destruct() { 
  5.         # Don't do either of these, if $baz also has a __destruct()! 
  6.         $this->baz = null; 
  7.         unset($this->baz); 
  8.          
  9.         # Instead, don't clear it at all, or do this: 
  10.         $this->baz->__destruct(); 
  11.     } 
  12. ?> 
  13.  
  14. If you made this mistake, this might happen in php<5.3.6: 
  15. <?php 
  16. # Some function that throws an exception 
  17. function fail($foobar) { 
  18.     throw new Exception("Exception A!"); 
  19.  
  20. $foobar = new Foobar(); 
  21. $foobar->baz = new Foobar(); 
  22.  
  23. try { 
  24.     fail($foobar); // Send foobar to func that throws an Exception 
  25. } catch( Exception $e ) { 
  26.     print $e->getMessage(); // Exception A will be caught and printed, as expected. 
  27.  
  28. $foobar = null; // clearing foobar, and its property $baz 
  29.  
  30. try { 
  31.     print 'Exception B:';// this will be printed 
  32.     // output stops here. 
  33.     throw new Exception("Exception B!"); 
  34. } catch( Exception $e ) { 
  35.     print $e->getMessage(); // doesn't happen 
  36. print 'End'// this won't be printed 
  37. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久久久久久久亚洲 | 中文字幕在线观看视频一区 | 成年人性视频 | 欧美18一19sex性护士农村 | 欧美77 | 欧美日韩一区,二区,三区,久久精品 | 国产精品久久久久久久午夜片 | 免费看性xxx高清视频自由 | 色中色综合网 | 91av大片| 孕妇体内谢精满日本电影 | 欧美性生活久久 | 久草视频手机在线观看 | 久久精品欧美视频 | va毛片| www.狠狠操.com | 免费国产精品视频 | 一区二区三区在线播放视频 | 精品国产91久久久久久浪潮蜜月 | 久久久久久久99 | 久久艳片 | 国产精品999在线观看 | 成人在线观看免费高清 | av国产免费 | 夜夜夜精品视频 | 久久久一区二区三区精品 | 香蕉成人在线视频 | 日本道中文字幕 | 久久久久av电影 | 国产精品麻豆一区二区三区 | 快播av在线| 日韩视频在线观看免费 | cosplay裸体福利写真 | 成年人观看免费视频 | 欧美一极视频 | 艹男人的日日夜夜 | 成年人小视频在线观看 | 国产一区二区三区在线观看视频 | 午夜精品福利在线观看 | 大学生一级毛片 | 日本在线免费观看 |