কম্পিউটার টিউটোরিয়াল

PHP-এ in_array 0 পাস করলে কেন true ফেরত দেয়?


in_array TRUE ফেরত দেয়ার কারণ হতে পারে স্ট্রিং-টু-নাম্বার কনভার্শন। যখন একটি স্ট্রিং ফাংশনে পাস করা হয়, এটি 0 ফেরত দেয়, যা খুঁজে বের করার মান।

PHP লুজ জাগলিং ব্যবহার করে, অর্থাৎ এলিমেন্টগুলো তুলনা করার সময় === বদলে == ব্যবহার করে। তাই তাদের মান তুলনা হয়, টাইপ নয়।

আরেকটি কারণ হলো টাইপ জাগলিং, অর্থাৎ একটি ভেরিয়েবল টাইপ কোডের কনটেক্সটে ডील করা হয়।

উদাহরণস্বরূপ- যখন একটি ফ্লোট ভ্যালু একটি ভেরিয়েবলে অ্যাসাইন করা হয়, এটি একটি ফ্লোটিং-পয়েন্ট ভ্যালু হয়ে যায়। এটি একইভাবে বিহেভ করে যখন একটি স্ট্রিং ইন্টিজারে কাস্ট করা হয়।

এই ধরনের বিহেভিয়ার এড়াতে, একটি থার্ড প্যারামিটার পাস করা যেতে পারে, যা স্ট্রিক্ট মোডে ডেটা তুলনা করে, যেখানে মান এবং টাইপ দুটোই তুলনা হয়।

নিচে কীভাবে ফাংশন বিহেভ করে যখন একটি স্ট্রিং পাস করা হয়:

উদাহরণ

echo intval("Hello");

আউটপুট

এটি নিচের ফলাফলটি উত্পন্ন করবে:

0

  1. PHP-এ substr() ফাংশন

  2. PHP-এ substr_count() ফাংশন

  3. PHP-এ strtok() ফাংশন

  4. PHP-এ strstr() ফাংশন