如何在php OOP中调用属性方法?

问题描述 投票:-2回答:1

我决定学习PHP中的面向对象的基础知识,但是我遇到了这段代码,但我不明白这行是如何工作的:

class Example
{
   private $obj;

   function __construct()
   {
      // some PHP code...
   }

   function __wakeup()
   {
      if (isset($this->obj)) return $this->obj->evaluate();
   }
}class CodeSnippet
{
   private $code;

   function evaluate()
   {
      eval($this->code);
   }}
// some PHP code...

$user_data = unserialize($_POST['data']);

// some PHP code...

在函数__wakeup()中,此行:

$this->obj->evaluate();

这是如何工作的?将函数传递给属性是什么意思?并且该函数不接受任何参数。

php oop input eval
1个回答
0
投票

我认为在您的Example类中,将实例化Code​​snippet对象,然后将其传递给私有属性$ obj($this->obj = new CodeSnippet();)。

然后,$ user_data应该是一个示例对象,它将调用反序列化函数。当您调用反序列化时,PHP将自动尝试调用__unserialize()或__wakeup()方法。

来源:https://www.php.net/manual/en/function.unserialize.php

© www.soinside.com 2019 - 2024. All rights reserved.