जवाबों:
आप वास्तव में क्या जरूरत पर निर्भर करता है:
is null
जाँचता है कि क्या मूल्य है null
:
{% if var is null %}
{# do something #}
{% endif %}
is defined
जाँचता है कि क्या चर परिभाषित किया गया है:
{% if var is not defined %}
{# do something #}
{% endif %}
इसके अतिरिक्त, is sameas
परीक्षण, जो दो मूल्यों की एक प्रकार की सख्त तुलना करता है, null
(जैसे false
) के अलावा अन्य मूल्यों की जाँच के लिए रुचि हो सकती है :
{% if var is sameas(false) %}
{# do something %}
{% endif %}
isset()
फ़ंक्शन के विपरीत , एक चर परिभाषित होने पर is defined
वापस आ जाएगा true
और यह मान शून्य है।
is_ sameas
चाहिए => twig.symfony.com/doc/2.x/tests/sameas.html{% if var is same as(false) %}
{% if var is sameas(false) %}
डिफ़ॉल्ट मानों को टहनी में कैसे सेट करें: http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
या यदि आप इसे प्रदर्शित नहीं करना चाहते हैं तो अशक्त:
{{ my_var | default("") }}
undefined or empty
और के बीच अंतर करता है null
?
किसी भी धारणा के बिना उत्तर है:
{% if var is null %}
लेकिन यह केवल तभी सच होगा जब var
वास्तव में NULL
, और किसी अन्य मूल्य का मूल्यांकन नहीं किया जाता है false
(जैसे कि शून्य, खाली स्ट्रिंग और खाली सरणी)। इसके अलावा, यह एक त्रुटि का कारण होगा अगर var
परिभाषित नहीं किया गया है। एक सुरक्षित तरीका होगा:
{% if var is not defined or var is null %}
जिसे छोटा किया जा सकता है:
{% if var|default is null %}
यदि आप default
फ़िल्टर को तर्क प्रदान नहीं करते हैं , तो यह मान लिया जाता है NULL
(डिफ़ॉल्ट डिफ़ॉल्ट का प्रकार)। तो सबसे छोटा और सबसे सुरक्षित तरीका (मुझे पता है) यह जांचने के लिए कि क्या एक चर खाली है (अशक्त, झूठा, खाली स्ट्रिंग / सरणी, आदि):
{% if var|default is empty %}
मुझे नहीं लगता कि आप कर सकते हैं। ऐसा इसलिए होता है क्योंकि अगर कोई ट्वीगर टेम्पलेट में अपरिभाषित (सेट नहीं) होता है, तो यह वैसा ही दिखता है ( NULL
या none
ट्वीग शब्दों में)। मुझे पूरा यकीन है कि यह टेम्प्लेट में होने वाली खराब पहुंच त्रुटियों को दबाने के लिए है।
ट्विग ( ===
) में एक "पहचान" की कमी के कारण यह सबसे अच्छा है जो आप कर सकते हैं
{% if var == null %}
stuff in here
{% endif %}
जिसका अनुवाद है:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
कौन करता है, तो अपने पर अपने अच्छे प्रकार करतब दिखाने , का मतलब है कि इस तरह के रूप बातें 0
, ''
, FALSE
, NULL
, और एक अपरिभाषित वर भी कि बयान सही कर देगा।
मेरा सुझाव है कि पहचान को ट्विग में लागू करने के लिए कहें।
{if var is none}
है और PHP समकक्ष क्या है?
{% if abcxyz is none %}
हो जाता है if (isset($context["abcxyz"])) { $_abcxyz_ = $context["abcxyz"]; } else { $_abcxyz_ = null; }
if ((null === $_abcxyz_)) { echo "hi"; }
। तो मूल रूप से यदि मान अपरिभाषित या अशक्त है, तो यह सच होगा।
{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html जो पीएचपी करने के लिए अनुवाद if (empty($var))
है कि एक falsey मूल्य के खिलाफ मूल्यांकन करता है ( !isset, null, 0, array(), "", false, "0", 0.0
) php.net/manual/en/function.empty.php आप कर सकते हैं {% if var is same as(var) %}
पहचान के लिए भी उपयोग करें ( ===
)। twig.sensiolabs.org/doc/tests/sameas.html
//test if varibale exist
{% if var is defined %}
//todo
{% endif %}
//test if variable is not null
{% if var is not null %}
//todo
{% endif %}
if var is not null
।
{% if var is not null %}