W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
PHP 有很多標(biāo)準(zhǔn)的函數(shù)和結(jié)構(gòu)。還有一些函數(shù)需要和特定地 PHP 擴(kuò)展模塊一起編譯,否則在使用它們的時候就會得到一個致命的“未定義函數(shù)”錯誤。例如,要使用 image 函數(shù)中的 imagecreatetruecolor(),需要在編譯 PHP 的時候加上 GD 的支持?;蛘撸褂?nbsp;mysqli_connect() 函數(shù),就需要在編譯 PHP 的時候加上 MySQLi 支持。有很多核心函數(shù)已包含在每個版本的 PHP 中如字符串和變量函數(shù)。調(diào)用 phpinfo() 或者 get_loaded_extensions() 可以得知 PHP 加載了那些擴(kuò)展庫。同時還應(yīng)該注意,很多擴(kuò)展庫默認(rèn)就是有效的。PHP 手冊按照不同的擴(kuò)展庫組織了它們的文檔。請參閱配置,安裝以及各自的擴(kuò)展庫章節(jié)以獲取有關(guān)如何設(shè)置 PHP 的信息。
手冊中如何閱讀函數(shù)原型講解了如何閱讀和理解一個函數(shù)的原型。確認(rèn)一個函數(shù)將返回什么,或者函數(shù)是否直接作用于傳遞的參數(shù)是很重要的。例如,str_replace() 函數(shù)將返回修改過的字符串,而 usort() 卻直接作用于傳遞的參數(shù)變量本身。手冊中,每一個函數(shù)的頁面中都有關(guān)于函數(shù)參數(shù)、行為改變、成功與否的返回值以及使用條件等信息。了解這些重要的(常常是細(xì)微的)差別是編寫正確的 PHP 代碼的關(guān)鍵。
注意: 如果傳遞給函數(shù)的參數(shù)類型與實(shí)際的類型不一致,例如將一個 array 傳遞給一個 string 類型的變量,那么函數(shù)的返回值是不確定的。在這種情況下,通常函數(shù)會返回 null。但這僅僅是一個慣例,并不一定如此。從 PHP 8.0.0 起,這種情況下應(yīng)拋出 TypeError 異常。
注意:在強(qiáng)制模式下內(nèi)置函數(shù)的標(biāo)量類型默認(rèn)可以為 null。自 PHP 8.1.0 起,棄用傳遞 null 到聲明為非 null 的內(nèi)部函數(shù)參數(shù),并在強(qiáng)制類型下發(fā)出棄用通知,與用戶定義函數(shù)的行為保持一致,其中標(biāo)量類型需要顯式標(biāo)記為可以為 null。
例如,strlen() 函數(shù)接受參數(shù) $string 為非 null 的 string。由于歷史原因,在強(qiáng)制模式下 PHP 允許此參數(shù)接受 null,并將參數(shù)隱式轉(zhuǎn)化為 string,從而產(chǎn)生 "" 值。相比之下,嚴(yán)格模式會拋出 TypeError。
<?php
var_dump(strlen(null));
// "Deprecated: Passing null to parameter #1 ($string) of type string is deprecated" as of PHP 8.1.0
// int(0)
var_dump(str_contains("foobar", null));
// "Deprecated: Passing null to parameter #2 ($needle) of type string is deprecated" as of PHP 8.1.0
// bool(true)
?>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: