簡體   English   中英

為什么我不能在PHP函數中將函數作為默認變量提供?

[英]Why can't I feed a function as a default variable in a PHP function?

我有一個函數返回一個自定義的星期幾,用於計算自定義周期。

我遇到問題的是實例化函數時的默認變量值。 function to return the default value and this throwing an error. 我使用 function來返回默認值,這會引發錯誤。

當我用類似的東西調用一個簡單的函數時:

function myFunction ($myVar = "test") { ... }

那就沒問題了。

一旦我將function作為默認值拋出到變量中,我就會收到以下錯誤:

[Tue Nov 03 15:00:41 2015] [error] [client 10.64.241.13] PHP Parse error:  syntax error, unexpected '(', expecting ')' in /var/www/service/test.php on line 6

這是我的函數,如果你想要一個例子,拋出這個錯誤:

function get_mod_week_day($day = date('N'), $hour = date('H') ) {

$myDay = null;

switch ($day) {

    case 1:
        $myDay = 5;
        break;
    case 2:
        $myDay = 6;
        break;
    case 3:
        $myDay = 7;
        break;
    case 4:
        $myDay = 1;
        break;
    case 5:
        $myDay = 2;
        break;
    case 6:
        $myDay = 3;
        break;
    case 7:
        $myDay = 4;
        break;
    default:
        $myDay = false;
}

return $myDay;

}

是否無法調用function來返回默認變量,或者是否有某種方法來解決這個問題?

從文檔功能參數

默認值必須是常量表達式,而不是(例如)變量,類成員或函數調用。

通常會做類似於此的事情:

function get_mod_week_day($day=null, $hour=null) {
    $day  = is_null($day)  ? date('N') : $day;
    $hour = is_null($hour) ? date('H') : $hour;
}  

此外,您的switch似乎很長,因為您只需添加4或從$day減去3

默認值必須是常量表達式,而不是(例如)變量,類成員或函數調用。

暫無
暫無

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

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