0

问题是:在声明“private $json”之后,我应该在构造函数 $json 还是 $this->json 中使用?

class Controller{
private $json;
 private $data;
  function __construct(){
  $json=json_decode(base64_decode($_POST['json']));
  }
}
4

3 回答 3

2

必须在此处使用$this->,否则您不会将其分配给实例,而只是在构造函数中创建一个局部变量,该变量将在构造函数运行后消失。php中没有可选项$this,您必须始终指定它。

于 2012-11-26T17:35:15.520 回答
0

您可以使用任何一种方式,但是在将其分配给 之后$this->json,我建议您继续使用该值。

这个想法是,如果您的构造函数有其他操作或方法调用,则这些方法可能会被编写为依赖于$this->json.

我的习惯是尽早设置实例变量并在设置后专门使用它们。

于 2012-11-26T17:29:56.783 回答
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;
  }
}
于 2012-11-26T17:31:49.910 回答