<?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框架,我在模型中得到这个,因为你可以看到变量实际上已定义,而不是相反。我从codeigniter控制器调用模型。
答案 0 :(得分:4)
您必须使用 $this->answers
而不是$this->$answers
来调用 answer 属性。
<?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;
}
}
答案 1 :(得分:0)
双箭头运算符“=&gt;”用作访问机制 阵列。这意味着它左侧的内容将具有 数组右侧的对应值 上下文。这可用于将任何可接受类型的值设置为a 数组的对应索引。索引可以是关联的(字符串 基于)或数字。
<?php
$myArray = array(
0 => 'Big',
1 => 'Small',
2 => 'Up',
3 => 'Down'
);
?>
对象操作符“ - &gt;”在对象范围中用于访问方法 和对象的属性。它的意思是说什么在上面 运算符的权限是实例化的对象的成员 运算符左侧的变量。实例化是关键 这里的术语。
<?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;
}
}