PHP函数参数
PHP教程 - PHP函数参数
PHP函数可以选择性地接受一个或多个参数,这些参数是传递给的值功能。
参数是保存值的变量当函数被调用时传递给它。
句法
要指定函数的参数,请在括号之间插入一个或多个变量名称,如下:
function myFunc( $oneParameter, $anotherParameter,... ) { // (do stuff here) }
示例 - 向函数中添加参数
我们需要给每个参数一个名字来引用它在函数里面。PHP将把它接收的值复制到这些参数中:
<?PHP function multiply($num1, $num2) { $total = $num1 * $num2; print $num1; print "\n"; print $num2; return $total; } $mynum = multiply(5, 10); echo $mynum; ?>
上面的代码生成以下结果。
例子
下面的代码显示了如何从函数创建定义列表。
<!DOCTYPE html> <html> <body> <h2>A function to create a definition list</h2> <?php $iterations = 10; function defList( $contents ) { $markup = "<dl>\n"; foreach ( $contents as $key => $value ) { $markup .= " <dt>$key</dt><dd>$value</dd>\n"; } $markup .= "</dl>\n"; return $markup; } $myBook = array( "title" => "The Grapes of Wrath", "author" => "John Steinbeck", "pubYear" => 1939 ); echo defList( $myBook ); ?> </body> </html>
上面的代码生成以下结果。
PHP函数默认参数
如果未传递相应的参数,则默认参数可以具有值当函数被调用时。
PHP允许您使用可选参数创建函数。您可以如下定义可选参数:
function myFunc( $parameterName=defaultValue ) { // (do stuff here) }
要定义函数的默认参数,请在变量后面添加默认值。
<?PHP function doHello($Name = "www.w3cschool.cn") { return "Hello $Name!\n"; } doHello(); doHello("PHP"); doHello("www.w3cschool.cn"); ?>
考虑这个功能:
function doHello($FirstName, $LastName = "Smith") { }
只有 $ LastName
获取默认值。 提供默认值两个参数的值,我们必须分别定义它们。
<?PHP function doHello($FirstName = "java2s", $LastName = ".com") { return "Hello, $FirstName $LastName!\n"; } doHello(); doHello("java2s", ".com"); doHello("Tom"); ?>
对于单个参数,PHP将假设您提供的参数是名字,因为它从左到右填充其参数。
我们不能将默认值放在非默认值之前。以下代码是错误的。
function doHello($FirstName = "Joe", $LastName) { }
示例 - 可选参数
下面的代码显示了如何创建一个带有可选参数的函数。
<?php function calcSalesTax($price, $tax="") { $total = $price + ($price * $tax); echo "Total cost: $total"; } calcSalesTax(42.00); ?>
上面的代码生成以下结果。
PHP变量长度参数
具有可变长度参数列表的函数可以采用尽可能多的参数作为用户的需要。
我们可以使用三个函数来做一个函数句柄变长参数。
func_num_args()
func_get_arg(), and
func_get_args()
func_num_args()
和 func_get_args()
不带参数。
func_num_args()
gets the number of arguments passed into your function.func_get_arg()
gets the value of an individual parameter.func_get_args()
returns an array of the parameters that were passed in.
这里举个例子:
<?PHP function some_func($a, $b) { for ($i = 0; $i < func_num_args(); ++$i) { $param = func_get_arg($i); echo "Received parameter $param.\n"; } } function some_other_func($a, $b) { $param = func_get_args(); $param = join(", ", $param); echo "Received parameters: $param.\n"; } some_func(1,2,3,4,5,6,7,8); some_other_func(1,2,3,4,5,6,7,8); ?>
上面的代码生成以下结果。
示例 - 变量的参数个数
下面的代码显示了如何create函数具有可变数量的参数。
<?php function makeList() { print("<ol>\n"); for($i=0; $i < func_num_args(); $i++) { print("<li>" . func_get_arg($i) . "</li>\n"); } print("</ol>\n"); } makeList("Linux", "Apache", "MySQL", "PHP"); ?>
上面的代码生成以下结果。
PHP函数参考参数
引用是指向PHP变量的指针。
创建引用变量的语法
$myRef = &$myVariable;
参考变量
我们有两种方法来读取或更改变量的内容。我们可以使用变量名,或者可以使用引用。
这里是一个创建对变量的引用的简单示例:
<?PHP $myVar = 123; $myRef = &$myVar; $myRef++; echo $myRef . "\n"; // Displays "124" echo $myVar . "\n"; // Displays "124" ?>
上面的代码生成以下结果。
首先,使用值123初始化一个新变量$ myVar。接下来,创建对$ myVar的引用,并且引用存储在变量$ myRef中。
注意等号后的&符号(&);使用此符号创建引用。
因为$ myRef实际上指向相同的数据。下一行代码为as的值添加一个$ myVar,$ myRef和$ myVar现在都包含值124。
参考参数的语法
要获得一个函数来接受一个参数作为一个引用而不是一个值,在上面加一个&符号(&)函数定义中的参数名:
function myFunc( & $aReference ){ // (do stuff with $aReference) }
注意
通过将对变量的引用作为参数传递给函数,而不是变量本身,你通过参数通过引用,而不是值。
这意味着该功能现在可以更改原稿值,而不是处理副本。
实施例1
参考参数
<?PHP function resetCounter( & $c ) { $c = 0; } $counter = 0; $counter++; $counter++; $counter++; echo "$counter\n"; // Displays "3" resetCounter( $counter ); echo "$counter\n"; // Displays "0" ?>
上面的代码生成以下结果。
实施例2
下面的代码显示了如何通过引用传递参数。
<?php $cost = 20.99; $tax = 0.0575; function calculateCost(&$cost, $tax) { // Modify the $cost variable $cost = $cost + ($cost * $tax); // Perform some random change to the $tax variable. $tax += 4; } calculateCost($cost, $tax); printf("Tax is %01.2f%% ", $tax*100); printf("Cost is: $%01.2f", $cost); ?>
上面的代码生成以下结果。
更多建议: