উত্তর:
এই বৈশিষ্ট্যটি পিএইচপি 5.5 তে প্রয়োগ করা হয়েছিল।
ডকুমেন্টেশন: http://php.net/manual/en/migration55.new-features.php#migration55.new-features.class-name
এটি 2 কারণে খুব কার্যকর।
use
আপনার ক্লাসটি সমাধান করার জন্য কীওয়ার্ডটি ব্যবহার করতে পারেন এবং আপনাকে পুরো শ্রেণীর নাম লেখার দরকার নেই।উদাহরণ স্বরূপ :
use \App\Console\Commands\Inspire;
//...
protected $commands = [
Inspire::class, // Equivalent to "App\Console\Commands\Inspire"
];
আপডেট :
এই বৈশিষ্ট্যটি লেট স্ট্যাটিক বাইন্ডিংয়ের জন্যও কার্যকর ।
__CLASS__
যাদু ধ্রুবকটি ব্যবহার না করে আপনি static::class
বৈশিষ্ট্যটি পিতামাতার শ্রেণীর অভ্যন্তরে উত্পন্ন ক্লাসের নাম পেতে ব্যবহার করতে পারেন । উদাহরণ স্বরূপ:
class A {
public function getClassName(){
return __CLASS__;
}
public function getRealClassName() {
return static::class;
}
}
class B extends A {}
$a = new A;
$b = new B;
echo $a->getClassName(); // A
echo $a->getRealClassName(); // A
echo $b->getClassName(); // A
echo $b->getRealClassName(); // B
use \App\...
এবং use App\...
অনুমোদিত। আমি এটি একটি সাবনেমস্পেসে অন্তর্ভুক্ত একটি ক্লাস এবং বর্তমান নেমস্পেসের শ্রেণিবদ্ধের বাইরে থাকা একটি শ্রেণীর মধ্যে পার্থক্য তৈরি করতে ব্যবহার করি।
class
সম্পূর্ণ বিশেষ শ্রেণীর নাম পেতে পিএইচপি দ্বারা সরবরাহ করা হয়, যা বিশেষ।
Http://php.net/manual/en/migration55.new-features.php#migration55.new-features.class-name দেখুন ।
<?php
class foo {
const test = 'foobar!';
}
echo foo::test; // print foobar!
আপনি যদি কৌতূহলী হন যে বিভাগে কোন বিভাগে ::class
আসে, (এটি কোনও ভাষা নির্ধারণ করা হোক না কেন), এটি খুব সহজ। এটি একটি ধ্রুবক । পিএইচপি একে "স্পেশাল কনস্ট্যান্ট" বলে। এটি বিশেষ কারণ এটি পিএইচপি সরবরাহ করে।
নিম্নলিখিত ব্যবহার করতে সচেতন হন:
if ($whatever instanceof static::class) {...}
এটি একটি সিনট্যাক্স ত্রুটি নিক্ষেপ করবে:
unexpected 'class' (T_CLASS), expecting variable (T_VARIABLE) or '$'
তবে আপনি পরিবর্তে নিম্নলিখিতটি করতে পারেন:
if ($whatever instanceof static) {...}
অথবা
$class = static::class;
if ($whatever instanceof $class) {...}
$className = 'SomeCLass'; $className = new $className(); $methodName = 'someMethod'; $className->$methodName($arg1, $arg2, $arg3); /* or if args can be random array*/ call_user_func_array([$className, $methodName], $arg);
Inspire::class
পশ্চাদপদ স্ল্যাশ উপসর্গ ব্যতীত "অ্যাপ \ কনসোল, কমান্ডস backward অনুপ্রেরণা" সমান।