ある:これらの2つのPHP OOP構文は同じ結果をもたらしますか? PHPで
$objectVar = someClassName::someFunction($var);
と同じ:
$object = new someClassName();
$objectVar = $object->someFunction($var);
ある:これらの2つのPHP OOP構文は同じ結果をもたらしますか? PHPで
$objectVar = someClassName::someFunction($var);
と同じ:
$object = new someClassName();
$objectVar = $object->someFunction($var);
号ここ
$objectVar = someClassName::someFunction($var);
、someFunction
は静的メソッドです。つまり、オブジェクトではなくクラスに属します。
$object = new someClassName();
$objectVar = $object->someFunction($var);
このコードでは、オブジェクトを介してアクセスする必要があるインスタンスメソッドです。
結果は同じですが、メソッドを呼び出すために使用されるハンドルが異なります。
明確にするために、メソッドはその定義でstatic/public/protectedと宣言できますか?したがって、実際の違いは、オブジェクトのインスタンスに属しているのと比べてクラスにのみ属しているかどうかです。これをインスタンスメソッドと呼びますか?私はそのような結果が可変インスタンスの変更を介して変更することしか予期できません:$ this-> varName = value;次にインスタンスメソッドを実行します。それは理にかなっていますか? – Ricalsin
@Ricalsin:はい。意味要素もここにあります。関数は、各オブジェクト、または一般的な型のプロパティですか?この決定は、それを静的または非静的メンバー関数にするかどうかを定義します。 _that_はあなたがそれを呼び出すために使用しなければならない構文を定義します。 –
いいえ、$ object :: someFunction($ var)に変更した場合はyesです。 – mwhite