簡體   English   中英

為可為空的函數參數提供 null 時如何使用默認值?

[英]How to use default value when `null` is given for a nullable function parameter?

在 PHP 7.1 中調用以下函數時:

private function doStuff(?int $limit = 999) { }

語法如下:

doStuff(null);

$limit的值變為null 所以我想可以說$limit的值被明確設置為null

有什么辦法可以克服這個問題嗎? 即當遇到空值(即缺少值)時使用默認值,是隱式的還是顯式的?

沒有 PHP 沒有“如果為 null 則回退到默認值”選項。 你應該這樣做:

private function dostuff(?int $limit = null) {
    // pre-int typehinting I would have done is_numeric($limit) ? $limit : 999;
    $limit = $limit ?? 999;
}

或者,當您沒有合理的價值來做某事時,請確保您執行dostuff()dostuff(999)

注意:也有反射來獲取方法參數的默認值,但這似乎太多了。

但是,方法如下:

 $m = new ReflectionFunction('dostuff');
 $default = $m->getParameters()[0]->getDefaultValue();
 dostuff($default);

暫無
暫無

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

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