Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter模型类中属性的用法是什么?_Php_Codeigniter - Fatal编程技术网

Php Codeigniter模型类中属性的用法是什么?

Php Codeigniter模型类中属性的用法是什么?,php,codeigniter,Php,Codeigniter,我从中复制了以下代码 请检查第3-5行:有三个属性名为public$title;公共内容;公费$日期 它们的用途是什么 我问这个问题是因为这些代码即使在删除它们时也能正常工作 我已经测试过了,去掉那些属性。我仍然可以毫无疑问地从控制器调用获取最后十个条目(),插入条目(),更新条目()函数。这些是公共变量 公共作用域可以使变量/函数从任何地方、对象的其他类和实例可用。(这意味着一旦为它们指定了值,您就可以从任何其他类或Instance访问) 那么,为什么您仍然可以使用这些函数呢 get\u l

我从中复制了以下代码

请检查第3-5行:有三个属性名为
public$title;公共内容;公费$日期

它们的用途是什么

我问这个问题是因为这些代码即使在删除它们时也能正常工作


我已经测试过了,去掉那些属性。我仍然可以毫无疑问地从控制器调用
获取最后十个条目()
插入条目()
更新条目()
函数。

这些是公共变量

公共作用域可以使变量/函数从任何地方、对象的其他类和实例可用。(这意味着一旦为它们指定了值,您就可以从任何其他类或Instance访问)

那么,为什么您仍然可以使用这些函数呢

  • get\u last\u ten\u entries()
    :此函数不需要变量
  • insert_entry()
    &
    update_entry()
    :您正在为它们赋值
如果您请求它们的值而不是分配值,则会出现错误

例如(假设删除了公共变量),然后调用如下函数

public function request_title(){
    return $this->$title;
}
以前没有赋值


希望这有帮助这些都是公共变量。当您删除它们并运行函数get_last_ten_entries()、insert_entry()和update_entry()时,由于在变量中动态赋值,因此运行正常

$this->title    = $_POST['title']; // please read the below note
                $this->content  = $_POST['content'];
                $this->date     = time();
在这里,这些变量是动态创建的,运行时不会出错

但是,如果您要使用如下函数 *

*


它将抛出一个错误,因为这个变量之前没有任何声明。

这三个属性我想您已经猜到了。但是,即使从类定义中删除了它们,这仍然有效的原因是PHP允许动态声明属性。这意味着您可以随时添加属性

这是一个PHP问题,与CodeIgniter无关

退房:

。。。你能告诉我你为什么否决我的问题吗?这将有助于我在将来提出更好的问题。嘿,你可以检查这是否使用公共、私有或受保护。换句话说,调用
$this->title=$\u POST['title']为类创建公共属性($title)。在类文件中不定义属性在这里起作用,但在其他情况下可能不起作用,并可能导致难以诊断的错误。它还使类“可读性”降低。这个答案应该被标记为正确的。
$this->title    = $_POST['title']; // please read the below note
                $this->content  = $_POST['content'];
                $this->date     = time();
public function getVal(){
     return $this->title;
}