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

PHP

توسط php1 در 6 سال پیش
0 92k 1 6 سال پیش
php1 php-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()) هست.

خوش آمدید

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