$specify_step = ($_GET['specify_step']) ? $_GET['specify_step'] : getNextStep($returnId,$type);
鑑於上述說法,有沒有一種方法可以簡化這個if語句甚至更多,以至於我不必兩次說$ _GET ['specify_step']?減少這個if..else聲明的方法更多嗎?
在我訪問GET或COOKIES等的情況下,它總是看起來多餘而且「更符合語言」,那麼它就是需要的。
$specify_step = ($_GET['specify_step']) ? $_GET['specify_step'] : getNextStep($returnId,$type);
鑑於上述說法,有沒有一種方法可以簡化這個if語句甚至更多,以至於我不必兩次說$ _GET ['specify_step']?減少這個if..else聲明的方法更多嗎?
在我訪問GET或COOKIES等的情況下,它總是看起來多餘而且「更符合語言」,那麼它就是需要的。
$specify_step = ($_GET['specify_step']) ?: getNextStep($returnId,$type);
它給我足夠的邏輯意義,我必須去查找....和according to php.net,它在PHP 5.3中工作。如果你使用5.3,你很幸運。
優秀 - 正是我所期待的。 – Susan 2011-06-09 04:03:04
我不認爲它比這更緊湊。我唯一的想法是做一個臨時變量來保存$_GET['specify_step']
,但似乎並沒有縮短。
正如我在你的問題的評論中提到的,我不知道PHP。
檢查是否有效。在大多數語言中,如果第一部分爲真,則不會調用功能getNextStep
。
$specify_step = ($_GET['specify_step']) || getNextStep($returnId,$type);
這不應該起作用 - PHP文檔指定邏輯或運算符返回一個布爾值,而不是它的參數(顯然,假設'specify_step'不是布爾值)。 – 2011-06-09 02:42:50
@Andrew Medico道歉,我應該點擊答案嗎?因爲我提到*大多數語言*它可能會幫助別人尋找類似的東西... – Lobo 2011-06-09 02:51:29
會有這種替代布爾評估方法,但它只是表明你有重複東西:(也作品,未經裝飾的換行符)
$specify_step = $_GET['specify_step']
or
$specify_step = getNextStep($returnId,$type);
用PHP 5.3你可能當然使用?:
快捷鍵。如果可以的話。
我個人可以替代$_GET->default('specify_step', 123)
這種情況。
我不知道PHP,但''_GET ['指定_step']'返回一個布爾值? – Lobo 2011-06-09 02:37:06
我想如果它返回任何東西,它將被視爲true,否則它將被視爲false。 – Nik 2011-06-09 02:39:04
@Nik無論是空還是「0」都會評估爲「false」。請參見[docs here](http://php.net/manual/en/language.types.boolean.php#language.types.boolean.casting)。 – Wiseguy 2011-06-09 02:43:59