2017-05-28 27 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; 
    } 
}