چطور مقدار primaryKey رو گرفتیم؟

پرسیده شده
فعالیت 934 روز پیش
دیده شده 325 بار
0

سلام و عرض ادب

توی متد remove:(این کد خلاصه شده متد remove هست)

    public function remove(): int
    {
        return $this->{$this->primaryKey};
    }

این خط:

return $this->{$this->primaryKey};

چجوری تونستیم مقدار id رو بگیریم؟

وقتی که this$ رو dump میکنیم، primaryKey به این صورته:

protected 'primaryKey' => string 'id' (length=2)

و attributes هم به این صورته:

  protected 'attributes' => 
    array (size=4)
      'id' => string '3' (length=1)
      'name' => string 'Ali' (length=3)
      'email' => string '[email protected]' (length=13)
      'password' => string 'dfdfdf' (length=6)

زمانی هم که primaryKey رو به این صورت:

var_dump($this->primaryKey);

دامپ میکنیم، این خروجی رو میده:

'id'

پس در واقع توی این دستور:

        $user = (new User(3));
        var_dump($user->remove());

داریم میگیم که آبجکت userی که idش 3 هست مقدار primaryKeyش رو میخوایم.

مقدار primaryKey هم که وقتی dump کردیم ‘id’ بود، پس باید همین رو برگردونه، چجوری تونست 3 رو برگردونه؟

 

یعنی اینجا:

$this->{$this->primaryKey};

در واقع میاد از همون مجیک متد get__ استفاده میکنه؟ یعنی اینجوری میشه؟

$user->id;

اگه اشتباه متوجه شدم، ممنون میشم ایراد رو بفرمایین.

فایل پیوست

1
حذف شده

سلام.

برداشتتون درسته.

$this->primaryKey ===> id
$this->{$this->primaryKey} ===> $this->id ===> __get('id')

 

 

 

فایل پیوست

محسن موحد

توسط

محسن موحد

23 مهر 00