2016-11-04 79 views
0

我是很新的面向對象,所以我有一個小問題屬性不可訪問,

我創建了一個類

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

然後對象

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

的當我試圖訪問物體的屬性時

echo $lesson->title 

我收到此錯誤信息

「的腳本試圖執行一個方法或訪問 不完整對象的屬性......」

+0

嘗試'回聲$ lession - > {標題}' – whisk

+0

什麼版本的PHP您使用的是? - 你在這裏展示的東西看起來有點陳舊,但確實有效。 – CD001

+0

@ CD001我正在使用PHP 7.我需要做的是創建一個新的對象/數組,然後將其推送到另一個數組中。你能提出一個更好的方法嗎? –

回答

0

你的屬性沒有定義。嘗試將它們添加到類聲明的頂部。

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

構造函數的語法也取決於php的verstion。如果你是> 5.3.3你應該使用__construct()

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

你需要爲了通過在創建這些值來改變function Lessonfunction __construct

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

否則,你就必須像這樣創建:

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