phpの新機能私はクラスを書いていて、なぜ$variable
の変数が$this->variable
を呼び出すときに$
を必要としないのだろうと思っていましたか?オブジェクト指向プログラミングで
答えて
あなたがそう
public $variable;
ような変数を宣言するとき、これらはこれ以上の変数ではないが、クラスのオブジェクトのプロパティです。 したがって、これらのプロパティを呼び出すときには、$this->property
によってこれらのプロパティを参照します。つまり、現在のオブジェクトのプロパティを呼び出すことを意味します。 $this
は、現在のクラスのインスタンスを参照します。クラス内でプロパティとメソッドを呼び出す場合は、$this->property-or-method
を使用する必要があります。
その変数はObject
と呼ばれる大きな変数の内部にあり、オブジェクトは内部変数/関数へのアクセス方法を知っているためです。スマート変数のように。
オブジェクトグループデータまたは同様の機能を使用することができる(と呼ばれる方法の彼らは、オブジェクトの内側にある場合)データ/値について
、あなたは、アレイを使用することができます。オブジェクトに格納されているデータもよく見ることができます。
しかし、関数を配列に格納することはありません。 PHPではそれは無駄なことですが、JavaScriptではすべて役に立ちます。
オブジェクトに戻ると、オブジェクトに格納されている関数はメソッドと呼ばれます。オブジェクトにはメソッドやプロパティを含めることができます。それは変数ではないhttp://php.net/manual/en/language.oop5.properties.php
<?php
class SimpleClass
{
// valid as of PHP 5.6.0:
public $var1 = 'hello ' . 'world';
// valid as of PHP 5.3.0:
public $var2 = <<<EOD
hello world
EOD;
// valid as of PHP 5.6.0:
public $var3 = 1+2;
// invalid property declarations:
public $var4 = self::myStaticMethod();
public $var5 = $myVar;
// valid property declarations:
public $var6 = myConstant;
public $var7 = array(true, false);
// valid as of PHP 5.3.0:
public $var8 = <<<'EOD'
hello world
EOD;
}
?>
:/変数の例http://php.net/manual/en/language.types.object.php
<?php
class foo
{
function do_foo()
{
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
// also valid $bar::do_foo();
?>
オブジェクトのプロパティから:から
オブジェクトメソッド/関数の例。それはオブジェクト指向を意味します。 現在のオブジェクトへの参照です。オブジェクト指向のコードで最もよく使用されています。
- 参考:http://www.php.net/manual/en/language.oop5.basic.php
- プライマー:http://www.phpro.org/tutorials/Object-Oriented-Programming-with-PHP.html
例:
<?php
class Person {
public $name;
function __construct($name) {
$this->name = $name;
}
};
$jack = new Person('Jack');
echo $jack->name;
これは、作成したオブジェクトのプロパティとして「ジャックの文字列を格納します。
- 1. HandlerThreadに名前が必要なのはなぜですか?
- 2. 可変オブジェクトにダブルポインタが必要なのはなぜですか?
- 3. なぜこの例では変数ではなくメソッドが必要ですか?
- 4. ポインタ変換で(void *)が必要なのはなぜですか?
- 5. try-with-resourceにローカル変数が必要なのはなぜですか?
- 6. JavaにPATHシステム変数が必要なのはなぜですか?
- 7. TARGETDIRディレクトリに名前が必要なのはなぜですか? WiXのプロジェクトで
- 8. IMAPで各コマンドの前にタグが必要なのはなぜですか?
- 9. F#関数でカッコが必要なのはなぜですか?
- 10. コントローラでInit関数が必要なのはなぜですか?
- 11. EFコアマイグレーションにはなぜ名前が必要ですか?
- 12. Mysqlのインデックスに名前が必要なのはなぜですか?
- 13. Rにデータフレームの名前が必要なのはなぜですか?
- 14. なぜcount()関数にパラメータが必要なのですか?
- 15. ブルームフィルタに複数のハッシュ関数が必要なのはなぜですか?
- 16. なぜPDFファイルにLOG4JとSLF4Jが必要ですか?なぜ.Docファイルには必要ないのですか?
- 17. 必要になる前に選択するのはなぜですか?ドキュメントで
- 18. ラムダ式に<functional>が必要ですが、関数<void()>が必要なのはなぜですか?
- 19. なぜ_ノードREPLモードで変数名が必要なのですか?
- 20. 私の関数にかっこが必要なのはなぜですか?
- 21. コードファーストクラスにはナビゲーションプロパティが必要なのはなぜですか?
- 22. PEにはオリジナルファーストサンク(OFT)が必要なのはなぜですか?
- 23. このコードにklassが必要なのはなぜですか?
- 24. RangeReplaceableCollectionに空のイニシャライザが必要なのはなぜですか?
- 25. このステートメントにセミコロンが必要なのはなぜですか?
- 26. ObjectDataSourceに関数のオプションのパラメータが必要なのはなぜですか?
- 27. os.pathのmonkeypatchingにパス引数が必要なのはなぜですか?
- 28. mongodbレプリカセットに奇数の投票ノードが必要なのはなぜですか?
- 29. クロージャ内の関数/メソッドにweakSelfが必要なのはなぜですか?
- 30. なぜfetchAllの(前に必要な)(実行です)
すでに変数参照の先頭に '$'があります。これは変数名の一部ではありません。 –