私はPHPクラス内で$ thisを使用しているときに検索しましたが、確定した回答があればそれを見つけることができませんでした。私はまだOOPのアプローチを使用して私の頭を包み込み、ベストプラクティスを使用していることを確認したいと思っています。PHPクラスのメンバーとメソッド
私の質問は、どのようにいつvarsを定義すべきか、また、$ thisを使って参照する必要があるときです。
は、私は以下のクラスを持っていると言う....
class Foo {
private $pin;
private $stat;
public function get_stat($pin) {
$this->stat = shell_exec("blah read $pin");
return $this->stat;
}
}
したがって、上記の機能では、私はクラスメソッドに渡されたのvar $ピンを持っています。これは、の$ this - を使用することなく、正常に動作します>ピンが...しかし、以下のコードはまた
class Foo {
private $pin = 0;
private $stat = 0;
public function get_stat($pin) {
$this->pin = $pin;
$this->stat = shell_exec("blah read $this->pin");
return $this->stat;
}
}
.....より多くのそれは同じことを行うには正しい方法だように思える、私が設定しています$ pinと$ stat varsを0に設定します。これはデフォルト値にすることもできますし、private $ pinの最初の例のように定義することもできます。プライベート$ stat;
私の質問に戻ると、どのようにクラスメソッドでメンバと$ thisを使用する方法のベストプラクティスですか?各例の長所と短所は何でしょうか?
私は[codereview.stackexchange](http://codereview.stackexchange.com/)でこれに関してかなり良い答えを得ました。それをチェックしてください[ここ](http://codereview.stackexchange.com/a/23857/20878) – jnthnjns
リンクASOKありがとう!これで、クラス内のプロパティを参照するために$ this ...のみを使うべき理由が理解できます。私はクラスの外でそれらにアクセスすることとの関係をかなり理解できませんでした。 – user2233942
絶対にエスケープされていない値でシェルを呼び出してください! 'shell_exec(" blah read $ pin ");はコードインジェクションに広くオープンしています。 escapehellarg() – Sven