জিনজা 2 শর্টহ্যান্ড শর্তযুক্ত


180

বলুন আমার কাছে এটি রয়েছে:

{% if files %}
    Update
{% else %}
    Continue
{% endif %}

পিএইচপি-তে, বলুন, আমি শর্টহ্যান্ড শর্তযুক্ত লিখতে পারি, যেমন:

<?php echo $foo ? 'yes' : 'no'; ?>

জিনজা 2 টেমপ্লেটে কাজ করার জন্য কি এই উপায়টি অনুবাদ করতে পারি?

'yes' if foo else 'no'

আমি জানি না এটি সাহায্য করে কিনা, তবে পিএইচপি এক্সপ্রেশনটি দেখতে অনেকটা দেখতে সি-জাতীয় ভাষায় "টার্নারি অপারেটর" নামে পরিচিত। চূড়ান্ত রেখাকে পাইথনকে "শর্তসাপেক্ষ অভিব্যক্তি" বলা হয়, যদিও আমি এটিকে পাইথনটিতে টার্নারি অপারেটর নামেও দেখেছি। যাইহোক, আমি এটি উল্লেখ করেছি কারণ এটি গুগল অনুসন্ধানে those জিনিসগুলির নাম জানতে সহায়তা করতে পারে।
মিগিলসন

উত্তর:


350

হ্যাঁ, যদি-এক্সপ্রেশনগুলিতে ইনলাইন ব্যবহার করা সম্ভব হয় :

{{ 'Update' if files else 'Continue' }}

74
সংক্ষিপ্ত {{ value if value else 'No value' }}{{ value or 'No value' }}
রূপটি

11
@ ডরিনগ্রেকু আমার কোড {{ tobe or 'Not to be' }}আপনাকে ধন্যবাদ দিয়ে পূর্ণ নয় :)
dcohenb

14
আপনার যদি কোনও ভেরিয়েবল ব্যবহার করতে হয় তবে আপনি ভিতরেও ব্যবহার করতে পারেন {% %}। লাইক{% set your_var = 'Update' if files else 'Continue' %}
jhpg

1
@ ডকোহেনব দয়া করে একটি আলাদা প্রশ্ন হিসাবে জিজ্ঞাসা করুন। ;)
ডিড02392

3

বিকল্প উপায় (তবে এটি অজগর স্টাইল নয় এটি জেএস স্টাইল)

{{ files and 'Update' or 'Continue' }}

1
এই কনস্ট্রাক্টটি এমন ভাষাগুলিতে সত্যিই প্রযোজ্য নয় যা খালি স্ট্রিংটিকে মিথ্যা বলে ব্যাখ্যা করে। True and '' or 'a'মূল্যায়ন করা হবে a, যা উদ্দেশ্য ছিল না।
গ্যাব্রিয়েল জাবলোনস্কি

কিন্তু পাইথন 3 খালি স্ট্রিংটিকে ব্যাখ্যা করে False। তাই '' or 'a'অজগর লিখলে উত্তর দেবে 'a'। সুতরাং আপনার মন্তব্যটি রুবির সাথে সম্পর্কিত হতে পারে উদাহরণস্বরূপ
user3713526
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.