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