2013-03-25 43 views
2

如果我用樹枝表達,如:Twig的邏輯運算符是否評估這兩個表達式?

{% if a and function(a) %} 

a存在falsey,並嫩枝仍評估function(a),或將表達式計算爲false沒有評估的第二部分?同樣與or

+0

我想我能做到這一點。我實際上開始查看源代碼,因爲我無法在網上找到答案。然而,我認爲也許有一天使用樹枝的設計師可能需要知道,並且可能不知道如何檢查自己,所以我想我可能會問,以便他們能夠找到幫助。 – iliveinapark 2013-03-25 01:23:41

+0

我幾乎不懷疑*設計師*會關注那個 – zerkms 2013-03-25 01:26:13

+0

另外,die不是一個Twig函數,所以它不那麼簡單。 – iliveinapark 2013-03-25 01:30:47

回答

5

TL; DR:如果所述第一部分是falsey,同樣與「或」如果第一部分是truthy嫩枝的邏輯運算符不評價一個「和」表達的第二部分。

作爲pointed out by zerkms,這是通過使用模具可測試的。

例如:

{% if water_is_dry and die('water_is_wet') %} 

不會死,因爲第一個表達式,被空,是falsey。

鑑於:

{% if water_is_dry or die('water_is_wet') %} 

會死。

請注意,如果你作爲一個函數添加模具到您的嫩枝例如,像這樣這隻適用:

$twig->addFunction(new Twig_SimpleFunction('die', 'die')); 
+0

已記錄並編輯。 – iliveinapark 2013-03-25 01:47:02

+2

@zerkms,我發現這個問題和新的答案有用。也許你應該在這裏刪除你的減號。 – 2013-11-30 20:39:47

相關問題