2017-05-28 69 views
1
<?php 

class Question_model extends CI_Model { 
    public $answers; 

    public function filter_answers($value){ 
    if(is_string($value)) 
    { 
     if(strpos($value,"option") !== false){ 
     $this->$answers[] = str_replace("option","",$value); 
     } 
    } 
    } 
    public function create_question($data){ 
     $data = array(
     'explanation' => $data['exp'], 
     'name' => $data['name'] 
    ); 

     $this->db->insert('question', $data); 

     array_filter($data,array($this,"filter_answers")); 
     echo $this->$answers; 
    } 
} 

我使用笨框架,我得到這個模型,你可以看到實際上是定義的變量,而不是周圍的其他方式。我正在從codeigniter控制器調用模型。不確定變量的答案被定義

回答

4

你必須調用答案財產與$this->answers,而不是由$this->$answers

<?php 

class Question_model extends CI_Model { 
    public $answers; 

    public function filter_answers($value){ 
    if(is_string($value)) 
    { 
     if(strpos($value,"option") !== false){ 
     $this->answers[] = str_replace("option","",$value); 
     } 
    } 
    } 
    public function create_question($data){ 
     $data = array(
     'explanation' => $data['exp'], 
     'name' => $data['name'] 
    ); 

     $this->db->insert('question', $data); 

     array_filter($data,array($this,"filter_answers")); 
     echo $this->answers; 
    } 
} 
+0

但是PHP文件中它被賦予爲$本 - > $財產 –

+0

對不起它實際上是錯誤 –

+0

沒有問題。請接受這個答案,如果它是正確的。 –

0

雙箭頭運算符,「=>」,被用作用於 陣列的訪問機制。這意味着它的左側將有一個 對應的值,它在數組 的上下文中位於右側。這可用於將任何可接受類型的值設置爲一個數組的對應索引 。索引可以是關聯的(基於字符串 )或數字。

<?php 
$myArray = array(
0 => 'Big', 
1 => 'Small', 
2 => 'Up', 
3 => 'Down' 
); 
?> 

對象操作符,「 - >」,則在對象範圍內用於訪問方法 和對象的屬性。它的含義是說運營商的權利 是運營商左側的變量實例化爲 的對象的成員。實例化是這裏的關鍵 術語。

<?php 
    $obj = new MyObject(); // Create a new instance of MyObject into $obj 
    $obj->thisProperty = 'Fred'; // Set a property in the $obj object called thisProperty 
    $obj->getProperty(); // Call a method of the $obj object named getProperty 
    ?> 

<?php 

class Question_model extends CI_Model { 
    public $answers; 

    public function filter_answers($value){ 
    if(is_string($value)) 
    { 
     if(strpos($value,"option") !== false){ 
     $this->answers[] = str_replace("option","",$value); 
     } 
    } 
    } 
    public function create_question($data){ 
     $data = array(
     'explanation' => $data['exp'], 
     'name' => $data['name'] 
    ); 

     $this->db->insert('question', $data); 

     array_filter($data,array($this,"filter_answers")); 
     echo $this->answers; 
    } 
}