[英]Why can't my local PHP function see the $test variable, and how can I get its value?
[英]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.