[請益] 取第一個有值者

看板PHP作者 (道可道非常道)時間14年前 (2009/12/21 00:23), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串1/1
嗯,我要的功能其實就是像javascript 的 $var = $a || $b || $c 也就是把變數值設為多個變數中第一個非空值的變數這樣, 不過 php 不支援像 js 這樣的 || 操作... 不知 php 有沒有原生語法可以做類似的事? 我知道可以自己寫函數,比如像: $var = selectVal($a,$b,$c); function selectVal() { $arg_list = func_get_args(); foreach ($arg_list as $i => $v) { if (isset($v)) return $v; } return null; } 但不知和這樣相比效率會不會較差?(雖然可讀性是差蠻多的...) if ($a) $var = $a; elseif ($b) $var = $b; else $var = $c -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.57.172

12/21 13:39, , 1F
請不要在乎這一點點效率問題
12/21 13:39, 1F

12/21 13:39, , 2F
後面改你code的人會很感謝你的 XD
12/21 13:39, 2F

12/21 14:06, , 3F
我應該還是會寫吧..只是如果有原生函數或語法更好
12/21 14:06, 3F

12/21 14:09, , 4F
應該用empty()而非isset()吧,不然一定會回傳第一個?
12/21 14:09, 4F

12/21 14:48, , 5F
本來就是要取第一個"有值"的變數,不過後來想想空值不算
12/21 14:48, 5F

12/21 14:48, , 6F
比較好...應該會用 if ($v) 吧
12/21 14:48, 6F

12/21 14:49, , 7F
if ($v) 會去除 $v 未設定, $v=null, $v='', $v=0
12/21 14:49, 7F
文章代碼(AID): #1BBazcLr (PHP)