很簡單,但這一直困擾着我。哪些是限制陳述的最佳方式?簡單!但是哪些條件陳述適用
$foo = '1';
if($foo === '1' || $foo === '2' || $foo === '3')
{
// foo matches
}
or
if($foo === '1' || '2' || '3')
{
// foo matches
}
哪一步工作更好。有更好的解決方案嗎?
很簡單,但這一直困擾着我。哪些是限制陳述的最佳方式?簡單!但是哪些條件陳述適用
$foo = '1';
if($foo === '1' || $foo === '2' || $foo === '3')
{
// foo matches
}
or
if($foo === '1' || '2' || '3')
{
// foo matches
}
哪一步工作更好。有更好的解決方案嗎?
第二個版本將始終評估爲true。
如果要壓縮對多個方案進行比較,然後使用:
if (in_array($foo, array('1', '2', '3'))) {
如果要密切配合的精確比較===
那麼你就不過需要:
if (is_string($foo) && in_array($foo, array(...))) {
$foo = 1;
if(in_array($foo, array(1, 2, 3))){
//foo matches
}
第二個if語句不起作用。 PHP不能像那樣工作。當在if語句中獨立時,除0之外的任何數字(包括負數)都將評估爲true。這就是爲什麼你可以這樣做if(count($array))
,而不指定count($array)
必須大於0
將是一樣的,如果你曾說過:
if($foo === 1)
{}
elseif(2) //This will always trigger if $foo !== 1.
{}
elseif(3) //This will never trigger because of the last one
{}
每個條件是它自己的自包含的條件。而不是像「或」或「和」那樣閱讀它,而是將它看作「或如果」和「如果」。所以if $foo is 1 or if 2 or if 3
而不是if $foo is 1 or 2 or 3
如果它只是數字,那麼amosrivera的解決方案是最好的。如果是針對其他類型的數據,那麼webarto/mario就有很好的解決方案。
該死的**我是一個人**檢查,你是5秒更快:) – 2011-03-28 23:50:39
哈哈哈。 :)你們都起來票 – goingsideways 2011-03-28 23:51:52