問題は、「private $json」を宣言した後、コンストラクター $json または $this->json で使用する必要があるかどうかです。
class Controller{
private $json;
private $data;
function __construct(){
$json=json_decode(base64_decode($_POST['json']));
}
}
問題は、「private $json」を宣言した後、コンストラクター $json または $this->json で使用する必要があるかどうかです。
class Controller{
private $json;
private $data;
function __construct(){
$json=json_decode(base64_decode($_POST['json']));
}
}
ここで使用する必要があります$this->
。そうしないと、インスタンスに割り当てるのではなく、コンストラクターの実行後に失われるコンストラクターでローカル変数を作成するだけです。PHPにはオプション$this
はありません。常に指定する必要があります。
どちらの方法でも使用できますが、 に割り当てた後は、$this->json
その値を引き続き使用することをお勧めします。
コンストラクターに他の操作またはメソッド呼び出しがある場合、それらのメソッドは に依存するように記述される可能性があるという考えです$this->json
。
インスタンス変数を早い段階で設定し、設定後に排他的に使用するのが私の習慣です。
$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;
}
}