ডাবল নন অপারেটর পিএইচপি-তে কী করে ?
উদাহরণ স্বরূপ:
return !! $row;
উপরের কোডটি কী করবে?
ডাবল নন অপারেটর পিএইচপি-তে কী করে ?
উদাহরণ স্বরূপ:
return !! $row;
উপরের কোডটি কী করবে?
উত্তর:
এটি হবে "দ্বিগুণ না অপারেটর" না, এটা না অপারেটর দুইবার প্রয়োগ করা হয়েছে। অধিকার !
একটি বুলিয়ান ফলে, হবে প্রতীক নির্বিশেষে । তারপরে !
বামেরা সেই বুুলিয়ানটিকে অস্বীকার করবে।
এর অর্থ হ'ল যে কোনও সত্য মানের জন্য (শূন্য, খালি খালি স্ট্রিং এবং অ্যারে বাদে সংখ্যাগুলি) আপনি বুলিয়ান মান পাবেন TRUE
এবং যে কোনও মিথ্যা মানের জন্য (০, ০.০ NULL
, খালি স্ট্রিং বা খালি অ্যারে) পাবেন বুলিয়ান মান FALSE
।
এটি কার্যকরীভাবে কাস্টের সমতুল্য boolean
:
return (bool)$row;
!!
সমান বিবেচনা করবেন (bool)
? অথবা কোনটি ব্যবহৃত হয় তার উপর নির্ভর করে বিভিন্ন মেশিন কোড চালিত হবে?
!value
, এবং যদি কোনও পরিমাণ ব্যাং থাকে তবে এটি একই হবে (bool) value
।
বুলিং কাস্টিং হিসাবে এটি একই (বা প্রায় একই - কোনও কোণার ক্ষেত্রেও থাকতে পারে)। যদি $row
সত্যে ফেলে দেওয়া হয়, তবে !! $row
এটিও সত্য।
তবে আপনি যদি অর্জন করতে চান তবে আপনার (bool) $row
সম্ভবত সম্ভবত এটি ব্যবহার করা উচিত - এবং কিছু "আকর্ষণীয়" অভিব্যক্তি নয়;)
!!
একটি অভ্যাস সি (++,) এ প্রোগ্রামিং থেকে অবশিষ্ট নেই। সিটিতে একটি কাস্ট করা পিএইচপি-র মতো সহজ নয়, আপনি অনেকগুলি বিভিন্ন সমস্যা পেতে পারেন, সতর্কতাগুলি সংকলন করতে পারেন, সুতরাং এইভাবে লোকেদের ব্যবহার করে বোল করতে হবে !!
।
operator!
অতিরিক্ত লোডযোগ্য, তাই এটি ব্যবহার C++
করা বিপজ্জনক হবে। এছাড়াও আপনি সিতে স্ট্রাক্ট কাস্ট করতে পারবেন না, বা !
সেগুলি ব্যবহার করতে পারবেন না । এছাড়াও যদি কিছু উপেক্ষা করা যায় তবে আপনি সম্ভবত এটি কোনও ফাংশন থেকে প্রত্যাবর্তন করতে সক্ষম হবেন যা এটি একটি বুলিয়ান। আপনি কি সি সম্পর্কে কথা বলছেন?
!!
আপনার দাবি অনুসারে "আকর্ষণীয়" কিছুই নয়। এটি সি থেকে জাভাস্ক্রিপ্ট পর্যন্ত পুরো জায়গা জুড়ে।
এর মানে যদি $row
একটি আছে truthy মান, এটা ফিরে আসবে true
, অন্যথায় false
, একটি বুলিয়ান মান রূপান্তর।
এখানে পিএইচপি ডক্স থেকে বুলিয়ান রূপান্তরকরণের উদাহরণ রয়েছে।
Expression Boolean
$x = ""; FALSE
$x = null; FALSE
var $x; FALSE
$x is undefined FALSE
$x = array(); FALSE
$x = array('a', 'b'); TRUE
$x = false; FALSE
$x = true; TRUE
$x = 1; TRUE
$x = 42; TRUE
$x = 0; FALSE
$x = -1; TRUE
$x = "1"; TRUE
$x = "0"; FALSE
$x = "-1"; TRUE
$x = "php"; TRUE
$x = "true"; TRUE
$x = "false"; TRUE
"কোনও নয়" কোনও ভাষা প্রকাশের ফলে ভাষার কী সত্যকে মূল্য দেয় তা বোঝার জন্য অনেক ভাষায় একটি সুবিধাজনক উপায়। উদাহরণস্বরূপ, পাইথনে :
>>> not not []
False
>>> not not [False]
True
এটি যে জায়গাগুলিতে একটি জটিল মান হ্রাস করতে চান সেখানে সুবিধাজনক হতে পারে "" কোনও মূল্য আছে কি? "
আর একজন মানব, সম্ভবত সহজ, 'পড়ার' উপায়টি নয়:
প্রথম '!' 2 টি কাজ করে: বুলিয়ানকে 'রূপান্তর' করে তার বিপরীতে আউটপুট দেয়। সুতরাং মানটি যদি 'মিথ্যা' হয় তবে এটি সত্য হবে।
দ্বিতীয় '!' প্রথমটির বিপরীতে আউটপুট দিতে হয়।
সুতরাং, মূলত, ইনপুট মানটি যে কোনও হতে পারে, একটি স্ট্রিং হতে পারে তবে আপনি বুলিয়ান আউটপুট চান, তাই প্রথম '!' ব্যবহার করুন। এই মুহুর্তে, আপনি যদি ইনপুট মানটি 'মিথ্যা' বলে মনে করেন সত্য, তবে এখানে থামুন এবং কেবল একটি একক ব্যবহার করুন '!' অন্যথায় যদি ইনপুট মানটি 'সত্যবাদী' হয় তবে আপনি যদি সত্যটি চান, তবে অন্য একটি '!' যোগ করুন।
এদিকে তাকান
!$a;
বরং ব্যাখ্যার চেয়ে! অপারেটর হিসাবে গ্রহণ হিসাবে
এর বুলিয়ান বিপরীত মান তার ডানদিকে
পড়া
অভিব্যক্তির বিপরীতে বুলিয়ানটিকে তার ডানদিকে নিয়ে যান
এক্ষেত্রে
$a;
একটি অভিব্যক্তি হতে পারে
তাই হয়
!$a;
তাই হয়
!!$a;
এবং
!!!$a;
এবং এই জাতীয় প্রতিটি যেমন একটি বৈধ এক্সপ্রেশন, তাই! অপারেটর তাদের প্রত্যেককে নতুন করে দেওয়া যেতে পারে।
return (bool) $row;