PHP Object Oriented Programming
PHP Object Oriented Programming পর্ব-১৫: PHP OOP Anonymous Class
PHP OOP তে 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
One thought on “PHP Object Oriented Programming পর্ব-১৫: PHP OOP Anonymous Class”
Leave a Reply
You must be logged in to post a comment.
Awesome writing.. waiting for more class…