PHP Professional এবং Zend Certified PHP Engineer (ZCPE ) Course এ সীমিত সংখ্যক আসন বাকি আছে। আগ্রহীদেরকে অতিসত্বর মাসুদ আলম স্যার এর সাথে যোগাযোগ করার জন্য অনুরোধ করা যাচ্ছে। স্যার এর মোবাইল নম্বর : ০১৭২২ ৮১ ৭৫ ৯১

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

PHP OOP তে Anonymous Class কি?

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 song\n";
    }
}

$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 song\n";
    }
});
// call the log function within the anonymous class.
echo $test->log( "This is not a love song\n" );
?>

Result:

This is not a love song

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

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

<?php

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

// 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 myClass\n";

// 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

এই ক্যাটাগরির অন্যান্য পোস্ট:

Masud Alam
আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ৮ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। বিশেষ ভাবে বাংলাদেশের ১০০ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই আমার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে TechBeeo Software Company তে সিইও হিসাবে আছি । পাশাপাশি w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -7 Engineering কোর্স করাই। আর w3programmers.com সাইট টি আমার।
One comment on “PHP Object Oriented Programming পর্ব-১৫: PHP OOP Anonymous Class

Leave a Reply

Your email address will not be published. Required fields are marked *