PHP函式


PHP函式是一段可以重複使用多次的程式碼。 它可以接受輸入作為引數列表和返回值。 PHP中有成千上萬的內建函式。

在PHP中,我們可以定義條件函式,函式內的函式和遞回函式。

PHP函式的優點

程式碼重用性:PHP函式只定義一次,可以多次呼叫,就像其他程式設計語言一樣。

使用更少的程式碼: 它節省了大量程式碼,因為我們不需要多次重寫邏輯。 通過使用函式,可以只寫一次邏輯並重用它。

易於理解: PHP函式分離了程式設計邏輯。 因此,更容易理解應用程式的流程,因為每個邏輯都被劃分為函式的形式。

PHP使用者定義函式

我們可以很容易地宣告和呼叫使用者定義的函式。下面來看看看宣告使用者定義函式的語法。

function functionname(){  
    //code to be executed  
}

注意:函式名必須以字母和下劃線開頭,與PHP中的其他標籤(如:變數)一樣。 它不能以數位或特殊符號開頭。

執行上面程式碼結果如下 -

PHP函式範例1

檔案: function1.php

<?php  
function sayHello(){  
echo "Hello PHP Function";  
}  
sayHello();//calling function  
?>

執行上面程式碼結果如下 -

Hello PHP Function

函式引數

我們可以通過用逗號分隔的引數傳遞PHP函式中的資訊。
PHP支援按值呼叫(預設),通過參照呼叫,預設引數值和可變長度引數列表。

下面來看看看在PHP函式中傳遞單個引數的例子。
檔案: functionarg.php

<?php  
function sayHello($name){  
    echo "Hello $name<br/>";  
}  
sayHello("MaxSu");  
sayHello("MinSu");  
sayHello("John");  
?>

執行上面程式碼結果如下 -

Hello MaxSu
Hello MinSu
Hello John

下面來看看看在PHP函式中傳遞兩個引數的例子。

檔案: functionarg2.php

<?php  
function sayHello($name,$age){  
echo "Hello $name, you are $age years old<br/>";  
}  
sayHello("Maxsu",27);  
sayHello("Minsu",26);  
sayHello("John",23);  
?>

執行上面程式碼結果如下 -

Hello Maxsu, you are 27 years old
Hello Minsu, you are 26 years old
Hello John, you are 23 years old

PHP參照呼叫

傳遞給函式的值預設情況下不會修改實際值(通過值呼叫)。 但我們可以通過傳遞值作為參考(參照)。

預設情況下,傳遞給函式的值是通過值呼叫。 要傳遞值作為參考(參照),您需要在引數名稱前使用&符號(&)。

下面來看看一個在PHP中通過參照呼叫的簡單範例。

File: functionref.php

<?php  
function adder(&$str2)  
{  
    $str2 .= 'Call By Reference';  
}  
$str = 'Hello ';  
adder($str);  
echo $str;  
?>

執行上面程式碼結果如下 -

Hello Call By Reference

PHP函式:預設引數值

我們可以在函式中指定預設引數值。 在呼叫PHP函式時,如果不指定任何引數,它將採用預設引數。 下面來看看一個在PHP函式中使用預設引數值的簡單範例。

檔案: functiondefaultarg.php

<?php  
function sayHello($name="default_name"){  
    echo "Hello $name<br/>";  
}  
sayHello("maxsu");  
sayHello();//passing no value  
sayHello("John");  
?>

執行上面程式碼結果如下 -

Hello maxsu
Hello default_name
Hello John

PHP函式:返回值

下面來看看一個有返回值的PHP函式的例子。

檔案: functiondefaultarg.php

<?php  
function cube($n){  
return $n*$n*$n;  
}  
echo "Cube of 3 is: ".cube(3);  
?>

執行上面程式碼結果如下 -

Cube of 3 is: 27