2017-06-24 15 views
2

phpの新機能私はクラスを書いていて、なぜ$variableの変数が$this->variableを呼び出すときに$を必要としないのだろうと思っていましたか?オブジェクト指向プログラミングで

+0

すでに変数参照の先頭に '$'があります。これは変数名の一部ではありません。 –

答えて

3

あなたがそう

public $variable; 

ような変数を宣言するとき、これらはこれ以上の変数ではないが、クラスのオブジェクトのプロパティです。 したがって、これらのプロパティを呼び出すときには、$this->propertyによってこれらのプロパティを参照します。つまり、現在のオブジェクトのプロパティを呼び出すことを意味します。 $thisは、現在のクラスのインスタンスを参照します。クラス内でプロパティとメソッドを呼び出す場合は、$this->property-or-methodを使用する必要があります。

2

その変数は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; 
} 
?> 
3

:/変数の例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(); 
?> 

オブジェクトのプロパティから:から

オブジェクトメソッド/関数の例。それはオブジェクト指向を意味します。 現在のオブジェクトへの参照です。オブジェクト指向のコードで最もよく使用されています。

例:

<?php 
class Person { 
    public $name; 

    function __construct($name) { 
     $this->name = $name; 
    } 
}; 

$jack = new Person('Jack'); 
echo $jack->name; 

これは、作成したオブジェクトのプロパティとして「ジャックの文字列を格納します。

関連する問題