PHP-তে Null Safe Operator দিয়ে Error Handling

একটা মজার ঘটনা দিয়েই শুরু করি।

কোডের Error-তো পরে, মাসুদ আলম স্যারের PHP Mastering বইয়ে এই অধ্যায় পড়তে গিয়েই আমার মাথা বারবার Error দিচ্ছিল! ব্রেনে ঢুকছিলই না। বারবার হ্যাং মারছিল। তারপর চ্যাটজিপিটিকে ত্যাক্ত-বিরক্ত করে কনসেপ্টটা ক্লিয়ার করলাম। তাই এখানে যতটা সম্ভব সহজে লিখতে চেষ্টা করবো।

আসলে Error Handling নিয়ে সমস্যায় পড়িনি এমন কেউ নেই। নতুন হিসেবে আমাদের Error ও আসে প্রচুর। এসব দেখে মাঝে মাঝে তো চুল ছিড়তে ইচ্ছে হয়।

তাই প্রোগ্রামারদের টাক হওয়া থেকে বাঁচাতে নতুন ফিচার আনা হয়েছে। মূলত PHP 8 ভার্শনে এসেছে। ফলে কোড লেখা অনেক সহজ এবং নিরাপদ হয়েছে।

এই ফিচার হলো Null Safe Operator (?->)। এই অপারেটরটি মূলত null মান চেক করতে ব্যবহৃত হয় এবং আমাদের কোডে অনেক ভুল কমাতে এবং error হ্যান্ডলিংয়ের জন্য সাহায্য করে।

আমরা যখন কোনো অবজেক্টের প্রোপার্টি বা মেথড অ্যাক্সেস করি, তখন যদি সেই অবজেক্ট null হয়, তাহলে সাধারণত PHP একটি ফ্যাটাল এরর দিয়ে থাকে। কিন্তু Null Safe Operator দিয়ে আমরা সেই সমস্যা সহজে এড়াতে পারি।

তাই চলুন এসম্পর্কে বিস্তারিত জেনে আসি।

Null Safe Operator কী?

Null Safe Operator হলো একটি নতুন অপারেটর। যা আমাদের অবজেক্টের প্রোপার্টি বা মেথড অ্যাক্সেস করার সময় null চেক করে নেবে। যদি সেই অবজেক্ট null হয়, তাহলে কোনো error ছাড়াই null রিটার্ন করবে।

মাঝে মাঝে কোনো অবজেক্টের প্রোপার্টি বা মেথড অ্যাক্সেস করতে চাইলে null চলে আসে। তখন সাধারণত “Trying to get property of non-object” এরর আসে। Null Safe Operator ব্যবহার করে এই ধরনের সমস্যা থেকে মুক্তি পাওয়া যায়।

Null Safe Operator এর প্রয়োগ

রিয়েল লাইফ কিছু উদাহরণ দেখলে বিষয়টি বুঝতে সহজ হবে। তাই চলুন কয়েকটি উদাহরণ দেখি।

:x: সাধারণ কোড (এরর সহ):

ধরা যাক, আমাদের একটি অবজেক্ট আছে, যার মধ্যে address প্রোপার্টি আছে। যদি user অবজেক্টটি null হয়, তাহলে এরর আসবে।

$user = null;
echo $user -> address;  // এখানে ফ্যাটাল এরর হবে

:white_check_mark: Null Safe Operator সহ কোড (এরর ছাড়া):

এখন, Null Safe Operator দিয়ে আমরা কোডটি এমনভাবে লিখতে পারি যাতে error না আসে।

$user = null;
echo $user?->address;  // এখানে কোনো এরর হবে না, বরং null রিটার্ন করবে

এখানে ?-> ব্যবহার করে আমরা শুধু null চেক করছি। আর যদি user অবজেক্টটি null থাকে, তাহলে কোডটি নির্বিঘ্নে চলবে এবং null রিটার্ন করবে।

কীভাবে Error Handling করা বেশি সহজ?

এই অপারেটর আসার আগে সাধারনত isset() বা empty() এসব দিয়ে Error কমানোর চেষ্টা করতাম। বুঝতেই পারছেন সেসব কতটা কঠিন ছিল।

এখন এসবও চেক করারও দরকার পড়ে না। কোডে কোনো বড় সমস্যা না থাকলে Null Safe Operator Error-কে খুব সুন্দরভাবে ম্যানেজ করতে পারে। একাই একশ।

কেন এটা গুরুত্বপূর্ণ?

১. ক্লিন কোড: এটি থাকলে কোডে null চেক করার জন্য অতিরিক্ত কোডের দরকার হয় না।

২. ডিবাগিং সহজ: কম error, কম সমস্যা

৩. পাইথন বা অন্যান্য ল্যাঙ্গুয়েজের মতো সুরক্ষিত: যেখানে এরর থাকলে কোড ক্র্যাশ হয়ে যায়, সেখানে এই অপারেটর PHP কোডে কাজগুলো নিরাপদ ও নির্ভুলভাবে সম্পন্ন করে।

অর্থাৎ,

PHP 8-এর Null Safe Operator কোড লেখার কাজকে আরও উন্নত এবং সহজ করে ফেলেছে। এটা ব্যবহার করে ক্লিন ভাবে error-handling করা যায়।

কি মনে হয় এখন থেকে এটি ব্যবহার করবেন?

3 Likes