簡體   English   中英

PHP默認參數函數調用

[英]PHP default argument function call

在php中,我們可以將默認參數傳遞給像這樣的函數

function func_name(arg1,arg2=4,etc...) {

但根據我的理解,我們無法通過函數調用,因此這是非法的:

function func2_name(arg1,arg2=time(),etc...) {

所以,當我想要做一個函數值時(想象一下像時間函數一樣,值不能在運行時之前知道)我必須像這樣做一個混亂的工作:

function func3_name(arg1,arg2=null,etc...) {
    if(arg2==null) arg2 = time();

我想知道是否有人知道更好的方法,一種更簡潔的方式將函數調用值作為默認參數傳遞給php? 謝謝。

在PHP語言設計中還有任何根本原因,它不允許函數調用作為默認參數(就像它在預處理中做了一些特殊的事情嗎?)或者這可能成為未來版本中的一個特性?

嗯,根據我的知識,簡短的回答是沒有更好的方法來做到這一點。 但是,您可以通過使用三元運算符使其看起來更整潔。

function func3_name(arg1,arg2=null,etc...) {
  arg2 = (arg2==null ? time() : arg2);
}

Connor 100%正確; 但是,從PHP 7開始,您現在可以使用null coalesce運算符

$arg2 = $arg2 ?? time();

只是一種更短,可以說更清晰的寫作方式。

暫無
暫無

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

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