۱ سلمان غلامی
نمایش نام کلاس
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۱۹ اسفند ۱۴۰۱

سلام وقتتون بخیر

ممنون از همه مطالب خوب این جلسه فقط یه سوال کوچیک داشتم

توی این مثال نام کلاس‌ها رو با یک عدد رندوم چاپ میکنه ولی وقتی namespace App\\Classes اضافه کردیم در خروجی نام کلاس‌ها با namespace چاپ میشه، باید چیکار کنیم که فقط نام کلاس چاپ بشه؟

این کلاس اصلی بود


namespace App\\Classes;
class Person
{
    private $name;
    public function __construct()
    {
        $this->name = static::class . '-' . rand(100, 800);
    }
    public function printName()
    {
        echo $this->name . '
'
;     } }

  اینجا هم نام کلاس چاپ میشه


include_once 'autoload.php';
use App\\Classes\\Person;
use App\\Classes\\Teacher;
use App\\Classes\\Student;
use App\\Classes\\User;
$p1 = new Person();
$p1->printName();
$t1 = new Teacher();
$t1->printName();
$s1 = new Student();
$s1->printName();
$u1 = new User();
$u1->printName();

در خروجی هم نام کلاس‌ها رو با namespace نشون میده

App\\Classes\\Person-217

App\\Classes\\Teacher-618

App\\Classes\\Student-526

App\\Classes\\User-760

سوالم اینه چطور namespace‌ها حذف بشه و فقط نام کلاس چاپ بشه؟

سلام دوست عزیز

از طریق تابع basename میتونید ققط نام کلاس رو داشته باشید. متد __construct رو به شکل زیر بنویسید:

public function __construct()
{
  $this->name = basename(static::class) . '-' . rand(100, 800);
}
بهترین پاسخ
صادق برزگر ۲۰ اسفند ۱۴۰۱، ۰۷:۳۸