[英]var inside var in oop php
我只是面向对象编程中的一个重要人物,目前正在学习面向对象的php,我对在类内部的变量中包含变量有些困惑,通常我会做类似的事情:
$div_content="some content";
$div = '<div>'.$div_content.'</div>';
但是当尝试这样做时,我得到一个错误:
class SomeClass{
private $div_content ="some content";
public $div='<div>'.$div_content.'</div>';
function __construct(){
echo $this->div;
}
}
有人可以帮我了解我在这里做错了什么吗? 提前致谢。
function __construct(){
$this->div = '<div>'.$this->div_content.'</div>';
echo $this->div;
}
您只能在声明中定义静态值,请使用__construct()
在类似的类上定义属性时,只能使用一个特定的值。 不能进行任何计算或运算。 例如,您不能有public $five = 2+3;
,它将无法正常工作。
相反,您可以在函数的构造函数中定义这些属性。
您应该研究getter和setter方法。 您只想得到一些东西,所以对$div
使用getter方法,称为getDiv
class SomeClass{
private $div_content = "some content";
public function getDiv() {
return '<div>'.$this->div_content.'</div>';
}
function __construct(){
echo $this->getDiv();
}
}
变量在类中的处理方式略有不同-像您或maja那样的结构-如果可行的话-必然会导致“问题”
尝试这样的事情,而不是:
class SomeClass{
private $div_content;
public $div;
function __construct($content){
$this->div_content = $content;
$this->makeDiv();
}
function makeDiv(){
echo "<div>".$this->div_content."</div>";
}
}
当然,有很多方法可以实现,但是我建议您不要在一开始就定义变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.