问题是:在声明“private $ json”后我应该在构造函数$ json或$ this-> json中使用?
class Controller{
private $json;
private $data;
function __construct(){
$json=json_decode(base64_decode($_POST['json']));
}
}
答案 0 :(得分:2)
你必须在这里使用$this->
,否则你不是将它分配给实例,只是在构造函数中创建一个局部变量,它将在构造函数运行后消失。在php中没有可选的$this
,你必须始终指定它。
答案 1 :(得分:0)
您可以使用它,但在将其指定给$this->json
后,我建议继续使用该值。
这个想法是,如果你的构造函数有其他操作或方法调用,那么这些方法可能会被编写为依赖于$this->json
。
我的做法是尽早设置实例变量,并在设置后专门使用它们。
答案 2 :(得分:0)
除非$ json是一个本地变量,不应该影响$ this-> json,否则我建议你在分配时使用$ this-> json。澄清:
class Controller{
private $json;
private $data;
function __construct(){
$this->json = json_decode(base64_decode($_POST['json']));
echo $this->json;
}
}
比以下更有意义:
class Controller{
private $json;
private $data;
function __construct(){
$json = json_decode(base64_decode($_POST['json']));
$this->json = $json;
echo $json;
}
}