تفاوت this$ با ::self در PHP چیست؟

PHP

توسط php1 در 5 سال پیش
0 1.4k 1 5 سال پیش
php1php-sec
0

سلام میخواستم تفاوت this$ با ::self در PHP رو بدونم لطفا با مثال توضیح بدید ممنون.

0

سلام this به آبجکت فعلی اشاره داره اما self به جایی که متد پا پراپرتی تعریف شده اشاره داره مثال:

<?php
class Person {
    private $name;

    function __construct($name) {
        $this->name = $name;
    }

    function getName() {
        return $this->name;
    }

    function getTitle() {
        return $this->getName()." the person";
    }

    function sayHello() {
        echo "Hello, I'm ".$this->getTitle()."<br/>";
    }

    function sayGoodbye() {
        echo "Goodbye from ".self::getTitle()."<br/>";
    }
}

class Geek extends Person {

    function getTitle() {
        return $this->getName()." the geek";
    }
}

$geekObj = new Geek("ITsecurITy");
$geekObj->sayHello();
$geekObj->sayGoodbye();
?>

تفاوت در لاین 18($this->getTitle()) و 22(self::getTitle()) هست.

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید