আমি নিজের জন্য জিনিসগুলি সহজ করার জন্য এখানে একটি ফাংশন লিখেছি:
এটি বুলিয়ান, পূর্ণসংখ্যা, ডাবল এবং বাস্তবের শর্টহ্যান্ড সংস্করণগুলিও প্রদান করে।
function type($mixed, $parseNumeric = false)
{
if ($parseNumeric && is_numeric($mixed)) {
//Set type to relevant numeric format
$mixed += 0;
}
$t = gettype($mixed);
switch($t) {
case 'boolean': return 'bool'; //shorthand
case 'integer': return 'int'; //shorthand
case 'double': case 'real': return 'float'; //equivalent for all intents and purposes
default: return $t;
}
}
পার্সে নিউমেরিক সেট সহ কলিং টাইপ পরীক্ষার আগে সংখ্যার স্ট্রিংগুলিতে রূপান্তরিত হবে।
এভাবে:
টাইপ ("5", সত্য) পূর্বে ফিরে আসবে
টাইপ ("3.7", সত্য) ভাসমান ফিরে আসবে
টাইপ ("500") স্ট্রিং ফিরে আসবে
কেবল সতর্কতা অবলম্বন করুন যেহেতু এটি এক ধরণের ভ্রান্ত চেকিং পদ্ধতি এবং আপনার আসল পরিবর্তনশীলটি এখনও একটি স্ট্রিং হয়ে থাকবে। প্রয়োজনে আপনাকে প্রকৃত ভেরিয়েবলটি সঠিক ধরণের রূপান্তর করতে হবে। ডাটাবেসের কোনও আইটেম আইডি বা উপনাম লোড করা উচিত কিনা তা খতিয়ে দেখার জন্য আমার এটি দরকার ছিল, সুতরাং কোনও অপ্রত্যাশিত প্রভাব পড়েনি, কারণ এটি কোনওভাবে রান টাইমে স্ট্রিং হিসাবে পার্স করা হবে।
সম্পাদন করা
আপনি যদি সনাক্ত করতে চান যে কোনও বস্তুগুলি ফাংশনগুলি স্যুইচটিতে এই কেসটি যুক্ত করে:
case 'object': return is_callable($mixed)?'function':'object';