日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php a链接怎么传id_PHP函数参数的传递

發布時間:2025/3/11 php 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php a链接怎么传id_PHP函数参数的传递 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP 支持兩種參數傳遞方式,分別是按值傳遞(默認)和按引用傳遞。另外,PHP 還支持默認參數和可變長度參數列表。

參數傳遞方式

在調用函數時需要向函數傳遞參數,被傳入的參數稱作實參,而函數定義的參數為形參。PHP 中函數參數傳遞有 2 種方式:按值傳遞和通過引用傳遞。

按值傳遞

按值傳遞的參數相當于在函數內部有這個參數的備份,即使在函數內部改變參數的值,也并不會改變函數外部的值,示例如下:

function test($a){

$a = $a + 1;

return $a;

}

$a = 1;

echo test($a);

test(2);

echo $a;

?>

執行以上代碼的結果為:

2 3 1

通過引用傳遞參數

如果希望允許函數修改它的參數值,就必須通過引用傳遞參數。這樣我們在函數內部是對這個參數本身進行操作。示例如下:

function test(&$a){

$a = $a + 1;

return $a;

}

$x = 1;

echo test($x);

echo $x;

?>

當調用一次 test() 函數后,$x 的值被改變,執行以上代碼的運行結果為:

2 2

注意,以下這種情況 PHP 會報錯:

function test(&$a){

$a = $a + 1;

return $a;

}

test(2); //引用傳遞的參數必須是一個變量

?>

執行以上代碼會報錯“Fatal error:Only variables can be passed by reference”。

默認參數

PHP 支持函數默認參數,允許使用數字、字符串、數組、NULL 等作為默認參數。默認參數的值必須是常量表達式,不能是諸如變量、類成員或者函數調用等。

默認參數示例如下:

function test($arr=array('lily','andy','ricky'), $str='apple'){

echo "I am $arr[1],I love $str
";

}

$names = ['sily','celon','tom'];

$fruit = 'orange';

test();

test($names,$fruit);

?>

執行以上代碼的結果為:

I am andy,I love apple

I am celon,I love orange

為了避免出現意外情況,一般將默認參數放在非默認參數的右側。下面是一個反面教材:

function?makeyogurt($type="acidophilus", $flavour){

return "Making a bowl of $type? flavour.\n";

}

echo makeyogurt("raspberry");

?>

報錯信息:

Warning: Missing argument 2 for makeyogurt(), called in /Library/WebServer/Documents/book/str.php on line 284 and defined in /Library/WebServer/Documents/book/str.php on line 279

Making a bowl of raspberry .

若將$type="acidophilus"放在參數的最右側,則不會報錯。

參數類型聲明

在 PHP 5 中已引入函數的參數類型聲明,如果給定的值不是一個合法的參數類型,那么在 PHP 5 中會出現一個 Fatal error,在 PHP 7 中則會拋出一個 TypeError exception。在 PHP 7 中增加了參數可聲明的類型種類。PHP 中函數可聲明的參數類型如表所示。

參數聲明類型

類型

說明

PHP 版本

class/interface name(類,接口)

參數必須是指定類或接口的實例

PHP 5.0.0

Array

參數為數組類型

PHP 5.1.0

Callable

參數為有效的回調類型

PHP 5.4.0

Bool

參數為布爾型

PHP 7.0.0

Float

參數為浮點型

PHP 7.0.0

Int

參數為整型

PHP 7.0.0

String

參數為字符串

PHP 7.0.0

class/interface name(類,接口)

參數必須是指定類或接口的實例

PHP 5.0.0

Array

參數為數組類型

PHP 5.1.0

指定參數類型為 class 類型的實例如下:

class C{}

class D extends C{} //類D繼承自類C

class E{}

functionf(C$c){

echo?get_class($c)."\n";

}

f(new C);

f(new D);

f(new E);

?>

執行以上程序的結果是:

C D

Fatal error: Uncaught TypeError: Argument 1 passed to f() must be an instance of C, instance of E given, called in /Library/WebServer/Documents/book/str.php on line 293 and defined in /Library/WebServer/Documents/book/str.php:287 Stack trace: #0 /Library/WebServer/Documents/book/str.php(293): f(Object(E)) #1 {main} thrown in /Library/WebServer/Documents/book/str.php on line 287

默認情況下,當傳遞的參數不是函數指定的參數類型時,PHP 會嘗試將所傳參數轉換成指定參數類型。例如,一個函數希望得到一個字符串類型的參數,但假如給其提供的是一個整型參數,PHP 就會自動將其轉換成字符串類型,或者一個函數希望得到一個整型參數,但卻給它傳遞了一個浮點型的參數。示例如下:

function test(int $a,string $b,string $c){

echo ($a + $b);

echo " the string is $c";

}

test(3.8,2,'hello');

?>

執行以上代碼的打印結果為:

5 the string is hello

注意,在將浮點型轉成整型時,只取其中的整數部分。

在 PHP 7 中,可以使用 declare(strict_types=1) 設置嚴格模式,這樣只有在傳遞的參數與函數期望得到的參數類型一致時才能正確執行,否則會拋出錯誤。只有一種情況例外,就是當函數期望得到的是一個浮點型數據而提供的是整型時,函數也能正常被調用。請看如下示例:

declare(strict_types=1);

function test(int $a,int $b,string $c){

echo ($a + $b);

echo " the string is $c";

}

test(3.8,2,'hello');

?>

此處 declare 聲明了 PHP 為嚴格模式,而傳入的參數與函數期望得到的參數類型不一致,所以會報錯,如下所示:

Fatal error: Uncaught TypeError: Argument 1 passed to test() must be of the type integer, float given, called in /Library/WebServer/Documents/book/str.php on line 285 and defined in /Library/WebServer/Documents/book/str.php:281 Stack trace: #0 /Library/WebServer/Documents/book/str.php(285): test(3.8, 2, 'hello') #1 {main} thrown in /Library/WebServer/Documents/book/str.php on line 281

可變參數

在 PHP 5.6 及以后的版本中,參數可包含…來表示函數可接受一個可變數量的參數,可變參數將會被當作一個數組傳遞給函數。示例如下:

function test(...$num){

$acc = 0;

foreach ($num as $key => $value) {

$acc += $value;

}

return $acc;

}

echo test(1,2,3,4);

?>

給 test() 函數傳遞的參數 1234 在函數內部將會被當作數組處理,運行以上代碼的結果為:

10

總結

以上是生活随笔為你收集整理的php a链接怎么传id_PHP函数参数的传递的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。