PHP函數(shù)參數(shù)

2018-02-22 16:40 更新

PHP教程 - PHP函數(shù)參數(shù)

PHP函數(shù)可以選擇性地接受一個(gè)或多個(gè)參數(shù),這些參數(shù)是傳遞給的值功能。

參數(shù)是保存值的變量當(dāng)函數(shù)被調(diào)用時(shí)傳遞給它。

句法

要指定函數(shù)的參數(shù),請?jiān)诶ㄌ栔g插入一個(gè)或多個(gè)變量名稱,如下:

function myFunc( $oneParameter, $anotherParameter,... ) { 
  // (do stuff here) 
}  

示例 - 向函數(shù)中添加參數(shù)

我們需要給每個(gè)參數(shù)一個(gè)名字來引用它在函數(shù)里面。PHP將把它接收的值復(fù)制到這些參數(shù)中:

<?PHP
function multiply($num1, $num2) { 
        $total = $num1 * $num2; 
        print $num1;
        print "\n";
        print $num2;
        return $total; 
} 
$mynum = multiply(5, 10); 
echo $mynum;
?>

上面的代碼生成以下結(jié)果。



例子

下面的代碼顯示了如何從函數(shù)創(chuàng)建定義列表。

<!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>


上面的代碼生成以下結(jié)果。



PHP函數(shù)默認(rèn)參數(shù)

如果未傳遞相應(yīng)的參數(shù),則默認(rèn)參數(shù)可以具有值當(dāng)函數(shù)被調(diào)用時(shí)。

PHP允許您使用可選參數(shù)創(chuàng)建函數(shù)。您可以如下定義可選參數(shù):

function myFunc( $parameterName=defaultValue ) { 
  // (do stuff here) 
}   

要定義函數(shù)的默認(rèn)參數(shù),請?jiān)谧兞亢竺嫣砑幽J(rèn)值。

<?PHP
function doHello($Name = "hgci.cn") { 
       return "Hello $Name!\n"; 
} 

doHello(); 
doHello("PHP"); 
doHello("hgci.cn"); 
?>

考慮這個(gè)功能:

function doHello($FirstName, $LastName = "Smith") { } 

只有 $ LastName 獲取默認(rèn)值。 提供默認(rèn)值兩個(gè)參數(shù)的值,我們必須分別定義它們。

<?PHP
function doHello($FirstName = "java2s", $LastName = ".com") { 
   return "Hello, $FirstName $LastName!\n"; 
} 
doHello(); 
doHello("java2s", ".com"); 
doHello("Tom"); 
?>

對于單個(gè)參數(shù),PHP將假設(shè)您提供的參數(shù)是名字,因?yàn)樗鼜淖蟮接姨畛淦鋮?shù)。

我們不能將默認(rèn)值放在非默認(rèn)值之前。以下代碼是錯誤的。

function doHello($FirstName = "Joe", $LastName) { } 

示例 - 可選參數(shù)

下面的代碼顯示了如何創(chuàng)建一個(gè)帶有可選參數(shù)的函數(shù)。

<?php

function calcSalesTax($price, $tax="") 
{
    $total = $price + ($price * $tax);
    echo "Total cost: $total";
}

calcSalesTax(42.00);

?>


上面的代碼生成以下結(jié)果。

PHP變量長度參數(shù)

具有可變長度參數(shù)列表的函數(shù)可以采用盡可能多的參數(shù)作為用戶的需要。

我們可以使用三個(gè)函數(shù)來做一個(gè)函數(shù)句柄變長參數(shù)。

  • func_num_args()
  • func_get_arg(), and
  • func_get_args()

func_num_args() func_get_args()不帶參數(shù)。

  • 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.

這里舉個(gè)例子:

<?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); 
?>

上面的代碼生成以下結(jié)果。

示例 - 變量的參數(shù)個(gè)數(shù)

下面的代碼顯示了如何create函數(shù)具有可變數(shù)量的參數(shù)。

<?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");
?>


上面的代碼生成以下結(jié)果。

PHP函數(shù)參考參數(shù)

引用是指向PHP變量的指針。

創(chuàng)建引用變量的語法

$myRef = &$myVariable;

參考變量

我們有兩種方法來讀取或更改變量的內(nèi)容。我們可以使用變量名,或者可以使用引用。

這里是一個(gè)創(chuàng)建對變量的引用的簡單示例:

<?PHP
         $myVar = 123; 
         $myRef = &$myVar; 
         $myRef++; 
         echo $myRef . "\n";  // Displays "124" 
         echo $myVar . "\n";  // Displays "124"   
?>

上面的代碼生成以下結(jié)果。

首先,使用值123初始化一個(gè)新變量$ myVar。接下來,創(chuàng)建對$ myVar的引用,并且引用存儲在變量$ myRef中。

注意等號后的&符號(&);使用此符號創(chuàng)建引用。

因?yàn)? myRef實(shí)際上指向相同的數(shù)據(jù)。下一行代碼為as的值添加一個(gè)$ myVar,$ myRef和$ myVar現(xiàn)在都包含值124。

參考參數(shù)的語法

要獲得一個(gè)函數(shù)來接受一個(gè)參數(shù)作為一個(gè)引用而不是一個(gè)值,在上面加一個(gè)&符號(&)函數(shù)定義中的參數(shù)名:

function myFunc(  & $aReference ){ 
  // (do stuff with $aReference) 
}   

注意

通過將對變量的引用作為參數(shù)傳遞給函數(shù),而不是變量本身,你通過參數(shù)通過引用,而不是值。

這意味著該功能現(xiàn)在可以更改原稿值,而不是處理副本。

實(shí)施例1

參考參數(shù)

<?PHP
    function resetCounter(  & $c ) { 
      $c = 0; 
    } 

    $counter = 0; 
    $counter++; 
    $counter++; 
    $counter++; 
    echo "$counter\n";  // Displays "3" 
    resetCounter( $counter ); 
    echo "$counter\n";  // Displays "0"   
?>

上面的代碼生成以下結(jié)果。

實(shí)施例2

下面的代碼顯示了如何通過引用傳遞參數(shù)。

<?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);

?>


上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號