PHP Object Oriented Programming পর্ব-১৫: PHP OOP Anonymous Class

PHP OOP তে Anonymous Class কি?

PHP Anonymous Class

Anonymous শব্দের অর্থ হচ্ছে নাম বিহীন বা বেনামী, আর anonymous class মানে হচ্ছে নাম বিহীন class বা বেনামী class, সুতরাং PHP OOP তে যখন কোনো class declare বা ঘোষণা করা হয়, কিন্তু class টির কোনো নাম থাকেনা, PHP OOP তে সেই class কে anonymous class বলে।

Anonymous Class বুঝার জন্য প্রথমে আমরা একটা সাধারণ Class তৈরী করি।

<?php
class Test{
    public function log(){
        return "This is not a love songn";
    }
}

$obj=new Test;
echo $obj->log();
?>

Result:

This is not a love song

উপরের class টিকেই anonymous class হিসেবে নিচের মতো declare এবং call করতে পারি।

নোট : anonymous class অবশ্যই semi-colon (;) দিয়ে শেষ করতে হয়।
<?php
// Example of a single use anonymous class
$test = (new class {
    public function log()
    {
        // echo the log message
       return "This is not a love songn";
    }
});
// call the log function within the anonymous class.
echo $test->log( "This is not a love songn" );
?>

Result:

This is not a love song

https://blog.w3programmers.com/php-course/

Anonymous Class এ Arguments পাঠানোর উপায়:

সাধারণ class এর মতো Anonymous Class এ Arguments পাঠানোর নিয়ম প্রায় একই। নিচের উদাহরণটি দেখুন:

<?php

// a message to pass to the constructor
$message = "This is a log messagen";

// create a new anonymous class, and pass the message as an arguement to the constructor
$test = (new class( $message ) {
        public function __construct( $message )
        {
                // echo the message
                echo $message;
        }
        public function log($msg){
            return $msg;
        }
});

echo $test->log("This is not a love song!");
?>

Result:

This is not a love song!

ব্যাখ্যা : উপরের কোডে আমরা $message variable কে Anonymous class এর Constructor Method এর value হিসেবে পাঠানোর জন্য class keyword এর পর first bracket এর মধ্যে পাঠিয়ে দিয়েছি। একই ভাবে সাধারণ অন্যান্য class এর Method যেভাবে Argument Pass করি , log Method এ ও আমরা একই ভাবে argument pass করেছি।

অন্য class থেকে Anonymous Class তৈরী বা Extend , Interface Implement এবং Trait এর Use:

আপনি চাইলে যেকোনো parent class কে Inherit করে Anonymous Class তৈরী করতে পারেন, একই সাথে interface Implement এবং trait use করতে পারেন। নিচের উদাহরণটি দেখুন:

<?php
/**
 * Interface that will be implement
 */
 interface testInterface{
     public function getMessage();
 }
/**
 * Trait that will be Used
 */
 trait testTrait{
     public function sayHello(){
         return "<br>Hello I'm From Trait";
     }
 }
 
/**
 * Class that will be extended
 */
class myClass{
    public function __construct( $message ){
    // echo the message
    echo $message;
    }
}

// a message to pass to the constructor
$message = "This class extends myClassn";

// a new anonymous class, which extends the myClass class.
$test = (new class( $message ) extends myClass implements testInterface{
        public function log( $msg ){
            return $msg;
        }
        public function getMessage(){
            return "<br>I am actually from a Interface";
        }
        use testTrait;
});
echo $test->log("This is not a Love Song!");
echo $test->getMessage();
echo $test->sayHello();

?>

Result:

This class extends myClass
This is not a Love Song!
I am actually from a Interface
Hello I'm From Trait

আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ১৫ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller, Amarbebsha Ltd সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ডেটা সাইন্স, মেশিন লার্নিং, বিগ ডেটা, ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। এছাড়াও বাংলাদেশের ১৮৫ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ১২০ এরও অধিক ছাত্র আমার হাতে জেন্ড সার্টিফাইড ইঞ্জিনিয়ার হয়েছেন। বর্তমানে w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -8.2 Engineering, Laravel Mastering Course with ReactJS, Python Beginning To Advance with Blockchain, Machine Learning and Data Science, Professional WordPress Plugin Development Beginning to Advance কোর্স করাই। আর অবসর সময়ে w3programmers.com এ ওয়েব টেকনোলজি নিয়ে লেখালেখি করি।

One thought on “PHP Object Oriented Programming পর্ব-১৫: PHP OOP Anonymous Class

Leave a Reply