簡體   English   中英

PHP function 中參考參數的默認值

[英]Default value for reference argument in PHP function

有什么可靠的方法可以知道 function 參考參數是否已通過?

我在 Stack Overflow 中看到了建議給它一個默認值並檢查該值的答案,但我已經對其進行了測試,它不是 100% 可靠的,因為你無法檢查參數是否尚未設置或是否它已被設置為一個與默認值相同的變量。

function fn (&$ref = null) {
    if ($ref === null)
        echo "ref null";
    else
        echo "ref not null";
}
$var = null;
fn($var); // ref null

function fn2 (&$ref = -1) {
    if ($ref === -1)
        echo "ref === -1";
    else
        echo "ref !== -1";
}
$var = -1;
fn2($var); // ref === -1

我正在運行 PHP 7.2

您可以使用func_num_args()檢查傳入 function 的 arguments 的數量

function fn (&$ref = null) {
    echo func_num_args().PHP_EOL;
    if ($ref === null)
        echo "ref null".PHP_EOL;
    else
        echo "ref not null".PHP_EOL;
}
$var = null;
fn($var);
fn();

會給

1
ref null
0
ref null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM