ট্যুইগে নাল কীভাবে পরীক্ষা করবেন?


279

একটি ট্যুইগ টেমপ্লেটে কোনও মান নুল কিনা তা পরীক্ষা করার জন্য আমার কোন নির্মাণ ব্যবহার করা উচিত?

উত্তর:


516

আপনার ঠিক কী প্রয়োজন তা নির্ভর করে:

  • 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 %}

71
এবং কিছু শূন্য হয় না তা পরীক্ষা করার জন্য, কেবল করুন{% if var is not null %}
জে.-বিসি

4
দ্রুত দ্রষ্টব্য যে: $ var == নাল true var 0 হলে সত্য হবে, তবে $ var নাল মিথ্যা ফিরে আসবে
daSn0wie

এছাড়াও নোট করুন যে $ var == 0 সত্য ফিরে আসবে যদি $ var শূন্য হয়
পিটার সোডারলন্ড

তদতিরিক্ত, পিএইচপি isset()ফাংশন থেকে পৃথক, কোনও ভেরিয়েবল সংজ্ঞায়িত করা হয় এবং এর মানটি শূন্য হলে is definedফিরে আসবে true
পাভেল

1
বিজ্ঞপ্তি: পরিবর্তনশীল জন্য পল্লব 2.x চেক মান সমান মতো is_ sameasকরা আবশ্যক {% if var is same as(false) %}না {% if var is sameas(false) %}দেখতে ডক URL => twig.symfony.com/doc/2.x/tests/sameas.html
আহমেদ হামদি

127

কীভাবে দ্বিগুণে ডিফল্ট মান সেট করবেন: http://twig.sensiolabs.org/doc/filters/default.html

{{ my_var | default("my_var doesn't exist") }}

অথবা যদি আপনি নালাগুলি প্রদর্শন করতে চান না:

{{ my_var | default("") }}

1
সুতরাং এটি undefined or emptyএবং এর মধ্যে পার্থক্য আছে null?
ফ্লাফি

6
দেখে মনে হচ্ছে এটি চেক করার সঠিক উপায় ... লজ্জাজনক এটির অনেকগুলি উত্স নেই।
মিঃ-স্কে

1
ঠিক আমি খুঁজছেন ছিল কি. আপনার অবশ্যই নিশ্চিত করতে হবে | ডিফল্ট যা আপনি তার পরে অন্য ভেরিয়েবলের ডিফল্টরূপে চেষ্টা করতে পারেন: {{my_var | ডিফল্ট (my_var2)}} আমি কেবল পরীক্ষা করেছি, তবে আপনি এমনকি চেইন চালিয়ে যেতে পারেন: {{my_var | ডিফল্ট (my_var2) | ডিফল্ট ("my_var এবং my_var2 বিদ্যমান নেই")}}
সিটিএস_এই

34

কোনও অনুমান ছাড়াই উত্তরটি হ'ল:

{% 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 %}

7

আমি মনে করি না আপনি পারবেন। এটি কারণ যদি কোনও ভেরিয়েবলটি টুইগ টেমপ্লেটে অপরিজ্ঞাত (সেট না করা) হয় তবে এটি দেখতে ( 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 এছাড়াও বিবৃতি সত্য করতে হবে।

আমার পরামর্শটি হ'ল পরিচয়টি টুইগের মধ্যে প্রয়োগ করা উচিত।


2
কেন্ডল এটিকে বাস্তবায়িত করার পরামর্শ দিতে যথাযথ - আমার কাছে টুইগের গিথুব ইস্যু ট্র্যাকারটিতে জিনিসগুলি প্রয়োগ করার জন্য জিজ্ঞাসাবাদ করার ভাল অভিজ্ঞতা ছাড়া কিছুই ছিল না। তারা খুব বন্ধুত্বপূর্ণ এবং পেশাদার।
শাবিরোব

@ কেন্ডল-হপকিন্স কৌতূহলী হয়ে উঠুন, কখন এটি ব্যবহার করা উপযুক্ত {if var is none}এবং পিএইচপি সমতুল্য কী?
noisebleed

@noisebleed {% if abcxyz is none %}হয়ে if (isset($context["abcxyz"])) { $_abcxyz_ = $context["abcxyz"]; } else { $_abcxyz_ = null; } if ((null === $_abcxyz_)) { echo "hi"; }। সুতরাং মূলত মানটি যদি অপরিজ্ঞাত বা নাল হয় তবে এটি সত্য হবে।
কেন্ডাল হপকিন্স

1
এছাড়াও @noisebleed noneজন্য একটি alias হয় null সুত্র
কেন্ডাল হপকিন্স

এই উত্তরের সমতুল্য {% 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
fyrye

5
     //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
crmpicco

4

এটি করতে আপনি একটি লাইনও ব্যবহার করতে পারেন:

{{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}

3

আপনি কিনা তা পরীক্ষা করতে নিম্নলিখিত কোডটি ব্যবহার করতে পারেন

{% if var is defined %}

var is variable is SET

{% endif %}

0

এছাড়াও যদি আপনার ভেরিয়েবলটি একটি অ্যারে হয় তবে কয়েকটি বিকল্পও রয়েছে:

{% if arrayVariable[0] is defined %} 
    #if variable is not null#
{% endif %}

অথবা

{% if arrayVariable|length > 0 %} 
    #if variable is not null# 
{% endif %}

এটি কেবল তখনই কাজ করবে যদি আপনার অ্যারে is definedএবং হয়NULL

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.