古い同僚は、私たちのコードでこれを書いた:PHPは、クラス関数とプロパティが同じ名前を共有できるようにしますか?鉱山の
public function paginate() {
return $this->paginate;
}
と私は思っていた:これは、関数のpaginate()またはクラスのプロパティ$のpaginateを返すのですか?
私は後者を推測していますが、私はこの件に関する情報が見つからないことは奇妙です。
古い同僚は、私たちのコードでこれを書いた:PHPは、クラス関数とプロパティが同じ名前を共有できるようにしますか?鉱山の
public function paginate() {
return $this->paginate;
}
と私は思っていた:これは、関数のpaginate()またはクラスのプロパティ$のpaginateを返すのですか?
私は後者を推測していますが、私はこの件に関する情報が見つからないことは奇妙です。
これは、クラスプロパティ$paginate
を返します。
それが機能someName()
を返し、その後return $this->someName();
だった場合。
と宣言されている場合は、関数が属するクラスの$paginate
プロパティまたは別のクラスのihneritsプロパティを返します。
戻りオブジェクトのプロパティ:
$this->paginate;
原因
対オブジェクトのメソッドを実行する関数呼び出しの後$this->paginate();
ブラケット(クラス内の関数はメソッドと呼ばれています) PHPではオプションではなく、通常のメソッドや関数は「ファーストクラスのオブジェクト」ではありません(JavaScriptなどのように、独自の変数として操作することはできません)。
したがって、$this->paginate();
は関数呼び出しでなければならず、$this->paginate;
は可変参照でなければならないため、曖昧さはありません。
しかし、それは特に良い習慣ではなく、編集者やIDEなどが警告として強調するでしょう。一般に、関数とメソッドは名詞ではなく動詞で始める必要があります。したがって、関数の名前はよりよくなります。getPaginate()
なぜ自分自身を試していないのですか? –
PHPには隠れた/自動/魔法のビヘイビアがたくさんあるので、簡単なテストでそれを逃すことができます! – CoR