PHP讀書筆記(7)- 函數

來源:互聯網
上載者:User

標籤:

自訂函數

  PHP內建了超過1000個函數,因此函數使得PHP成為一門非常強大的語言。大多數時候我們使用系統的內建函數就可以滿足需求,但是自訂函數通過將一組代碼封裝起來,使代碼進行複用,程式結構與邏輯更加清晰。

  PHP函數的定義方式:
      1.使用關鍵字“function”開始
      2.函數名可以是字母或底線開頭:function name()
      3.在大括弧中編寫函數體

1 <?php2     function say()3     {4         echo ‘hello world‘;5     }6 //在這裡調用函數7 say();
函數的參數

  PHP的函數可以沒有參數,也可以有若干個參數,多個參數稱之為參數列表,採用逗號進行分割,參數類似於一個變數,調用時用來傳遞資料到函數體中。通過傳遞參數可以使函數實現對參數的運算,得到我們想要的結果。

  參數的變數名可以自由指定,但最好能夠表達相關的意思,常用的設定參數的方法為:

1 <?php2     function sum($a, $b) {3     echo $a + $b;4     }5 //在這裡調用Function Compute1+2的值6     sum(1,2);7 ?>
傳回值

  使用return關鍵字可以使函數傳回值,可以返回包括數組和對象的任意類型,如果省略了 return,則預設傳回值為 NULL。

1 function add($a) {2     return $a+1;3 }4 $b = add(1);

  返回語句會立即中止函數的運行,並且將控制權交回調用該函數的程式碼,因此下面函數的傳回值跟上面的函數是一樣的。

1 function add($a) {2     return $a+1;3     $a = 10;4     return $a+20;5 }6 $b = add(1);7

  函數不能返回多個值,但可以通過返回一個數組來得到類似的效果。

1 function numbers() {2     return array(1, 2, 3);3 }4 list ($one, $two, $three) = numbers();5 
可變函數

  所謂可變函數,即通過變數的值來調用函數,因為變數的值是可變的,所以可以通過改變一個變數的值來實現調用不同的函數。經常會用在回呼函數、函數列表,或者根據動態參數來調用不同的函數。可變函數的調用方法為變數名加括弧。

1 function name() {2     echo ‘jobs‘;3     }4     $func = ‘name‘;5     $func(); //調用可變函數

  可變函數也可以用在對象的方法調用上。

 1 <?php 2 class book { 3     function getName() { 4         return ‘bookname‘; 5     } 6 } 7     $func = ‘getName‘; 8     $book = new book(); 9     $book->$func();10 ?>
內建函數

  內建函數指的是PHP預設支援的函數,PHP內建了很多標準的常用的處理函數,包括字串處理、數組函數、檔案處理、session與cookie處理等。

  我們先拿字串處理函數來舉例,通過內建函數str_replace可以實現字串的替換。下面的例子將“jobs”替換成“steven jobs”:

1 $str = ‘i am jobs.‘;2 $str = str_replace(‘jobs‘, ‘steven jobs‘, $str);3 echo $str; //結果為“i am steven jobs”

  另外一些函數是通過其他擴充來支援的,比如mysql資料庫處理函數,GD影像處理函數,郵件處理函數等,PHP預設載入了一些常用的擴充庫,我們可以安裝或者載入其他擴充庫來增加PHP的處理函數。

判斷函數是否存在

  當我們建立了自訂函數,並且瞭解了可變函數的用法,為了確保程式調用的函數是存在的,經常會先使用function_exists判斷一下函數是否存在。同樣的method_exists可以用來檢測類的方法是否存在。

1 function func() {2 }3 if (function_exists(‘func‘)){4     echo ‘exists‘;5 }

  類是否定義可以使用class_exists。

1 class MyClass{2 }3 // 使用前檢查類是否存在4 if (class_exists(‘MyClass‘)) {5     $myclass = new MyClass();6 }

  PHP中有很多這類的檢查方法,例如檔案是否存在file_exists等。

1 $filename = ‘test.txt‘;2 if (!file_exists($filename)) {3     echo $filename . ‘ not exists.‘;4 }
上一節:PHP讀書筆記(6)- 數組

 

PHP讀書筆記(7)- 函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.