2012-01-26 56 views
1

一個簡單的問題給你們。
我認爲必須有一個更簡單的(=更少的代碼)的方式做下面的代碼片段:一行if-else

if (!link_validate_url($items[0]['url_value'])) { 
    form_set_error('', 'Not a valid URL.'); 
} 

你當然可以縮短:

if (link_validate_url($items[0]['url_value'])) { 
} else { 
    form_set_error('', 'Not a valid URL.'); 
} 

回答

5

使用!操作簡單否定的返回值它甚至更多,但IMO降低可讀性:

if (!link_validate_url($items[0]['url_value'])) 
    form_set_error('', 'Not a valid URL.'); 

甚至

if (!link_validate_url($items[0]['url_value'])) form_set_error('', 'Not a valid URL.'); 
+0

那麼容易,真的嗎? :)好吧,這很好!謝謝! – Michiel

0
if (!link_validate_url($items[0]['url_value'])) { 
    form_set_error('', 'Not a valid URL.'); 
} 

,或者你可以(AB)使用永遠不會執行的第二部分或常見的編譯器優化,如果第一部分是真實的

link_validate_url($items[0]['url_value']) or form_set_error('', 'Not a valid URL.'); 
1

試試這個:

if (! link_validate_url($items[0]['url_value'])) { 
    form_set_error('', 'Not a valid URL.'); 
} 

另外,您可能需要read this

+0

感謝您的鏈接和信息! – Michiel

1

你可以(ab)使用三元運算符。

通常它是condition ? action if true : action if false;但是您可以將操作留空。

這留給你:

link_validate_url($items[0]['url_value'] ?: form_set_error('', 'Not a valid URL.');

編輯:

這是PHP 5.3+

Notes on this operator can be found here