問題標題已經問:在枝條模板{{0 in ['a','b','99']}}中返回1.爲什麼?
在樹枝模板{{0 in ['a', 'b', '99']}}
打印1
。爲什麼?我有'0'
作爲一個值,我不能檢查它與數組,因爲該值總是彈出現有。在一天結束時:我如何實現在Twig中針對字符串數組檢查零的目標?
問題標題已經問:在枝條模板{{0 in ['a','b','99']}}中返回1.爲什麼?
在樹枝模板{{0 in ['a', 'b', '99']}}
打印1
。爲什麼?我有'0'
作爲一個值,我不能檢查它與數組,因爲該值總是彈出現有。在一天結束時:我如何實現在Twig中針對字符串數組檢查零的目標?
PHP的比較類型強制轉換爲必要時的整數。你正在檢查一個整數是否在數組中。對於此比較,(int) 'a'
被強制爲0
。因此0
被視爲在陣列中。
爲了避免這種情況,你可以使用in_array
與嚴格的選項:
in_array('0', ['a', 'b', '99'], true)
考慮到這一點,我相信'''var_dump(in_array(0,['1','2']))'''應該產生''''true'',對嗎?它會產生'''false'''(至少在PHP 7中)。 '''var_dump(in_array(0,[1,2]))'''''那麼爲什麼呢? –
因爲字符串「1」被強制爲「1」。與任何整數相比,字符串被強制爲「0」。 –
好的,那麼我們如何與整數零比較,然後在小枝當然? –
參見:http://stackoverflow.com/q/28437510/3933332 – Rizier123
@ Rizier123感謝,但Q&A不提供我有一個關於如何在Twig中實現我的目標的解決方案。我得到了這個原因,但也需要一個解決方案。 –