对象的属性不可访问


Properties of Object not accessable

我对OOP很陌生,所以我遇到了一个小问题

我已经创建了一个类
class Lesson {
        function Lesson( $title, $sample ) {
            $this->title = $title;
            $this->sample = $sample;
        }
 }

对象

$title = 'title';
$sample = false;
$lesson = new Lesson( $title, $sample );

当我试图访问对象

的属性时
echo $lesson->title

我得到这个错误信息

"脚本试图执行方法或访问对象的属性不完整的对象……"

您需要将function Lesson更改为function __construct,以便在创建时传递这些值。

class Lesson {
    function __construct( $title, $sample ) {
        $this->title = $title;
        $this->sample = $sample;
    }
 }

否则,您必须像这样创建它:

$lesson = new Lesson();
$lesson->Lesson($title, $sample);
echo $lesson->title;

您的属性没有定义。尝试将它们添加到类声明的顶部。

class Lesson {
        public $title = '';
        public $sample = '';
        public function Lesson( $title, $sample ) {
            $this->title = $title;
            $this->sample = $sample;
        }
 }

构造函数语法也取决于php的版本。如果你是> 5.3.3,你应该使用__construct()

class Lesson {
        public $title = '';
        public $sample = '';
        function __construct( $title, $sample ) {
            $this->title = $title;
            $this->sample = $sample;
        }
 }