[英]Using function result as a default argument in PHP function
我正在編寫一個需要一些日期單位的函數,比如“小時”,“分鍾”和“秒”,但我想制作這些選項,服務器的當前時間用作默認值。
在PHP的mktime(..)
我注意到它們使用函數調用來獲取默認參數值 - 但是當我嘗試這個時,它不起作用:
PHP看起來像這樣: mktime([int $hour = date("H")[,int $minute= date("i")[,etc...
而且我試圖將它復制到我的函數中,完全相同(只是沒有那么多參數,直到我得到它的工作): function myFunc([int $hour = date("H")[,int $minute= date("i")]]) {
使用此代碼,PHP告訴我Parse error: syntax error, unexpected '[', expecting '&' or T_VARIABLE in ...
我試過搜索這個 - 但設法找不到這個主題。 我的問題是,這可能是我做的,或者我將不得不指定null作為參數,然后在函數內檢查它們,如下所示:
function myFunc($hour=null,etc...) {
if($hour==null){$hour=date("H");}
//etc...
}
至於為什么我想知道這個,除了使用我自己提供的解決方案之外 - 我還在學習PHP,並希望學習最佳實踐。
默認函數參數應該是編譯時常量。 或者在PHP的情況下,在執行腳本之前,PHP解釋器應該知道該值。
因此,您無法直接將函數結果用作默認參數
因此,唯一的方法是您已經知道的null默認參數方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.