একটি ট্যুইগ টেমপ্লেটে কোনও মান নুল কিনা তা পরীক্ষা করার জন্য আমার কোন নির্মাণ ব্যবহার করা উচিত?
একটি ট্যুইগ টেমপ্লেটে কোনও মান নুল কিনা তা পরীক্ষা করার জন্য আমার কোন নির্মাণ ব্যবহার করা উচিত?
উত্তর:
আপনার ঠিক কী প্রয়োজন তা নির্ভর করে:
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
করা আবশ্যক {% if var is same as(false) %}
না {% if var is sameas(false) %}
দেখতে ডক URL => twig.symfony.com/doc/2.x/tests/sameas.html
কীভাবে দ্বিগুণে ডিফল্ট মান সেট করবেন: 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
দ্বিগুণ পদে) looks আমি নিশ্চিত যে এটি টেমপ্লেটে ঘটে যাওয়া থেকে খারাপ অ্যাক্সেস ত্রুটিগুলি দমন করা ress
টুইগের (" ===
) " পরিচয়ের "অভাবের কারণে এটি আপনার পক্ষে সেরা
{% if var == null %}
stuff in here
{% endif %}
যা অনুবাদ করে:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
কোনটি যদি আপনার আপনার ভাল টাইপ আকাশ গান , তার মানে যেমন জিনিষ 0
, ''
, FALSE
, NULL
, এবং একটি অনির্ধারিত Var এছাড়াও বিবৃতি সত্য করতে হবে।
আমার পরামর্শটি হ'ল পরিচয়টি টুইগের মধ্যে প্রয়োগ করা উচিত।
{if var is none}
এবং পিএইচপি সমতুল্য কী?
{% 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))
মিথ্যা মান ( !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 arrayVariable[0] is defined %}
#if variable is not null#
{% endif %}
অথবা
{% if arrayVariable|length > 0 %}
#if variable is not null#
{% endif %}
এটি কেবল তখনই কাজ করবে যদি আপনার অ্যারে is defined
এবং হয়NULL
{% if var is not null %}