manual を見ましたが、答えが見つからないようです。
PHP可視性宣言のないメソッドのデフォルトの可視性は何ですか?PHP Javaのようなパッケージの可視性はありますか?
たとえば、次のコードでは、go()
はパブリックですか、プライベートですか?
_class test {
function go() {
}
}
_
私が尋ねた理由は、function __construct()
とpublic function __construct()
として記述された多くのコンストラクタコードを見たことです。それらは同等ですか?
デフォルトはパブリックです。
クラスメソッドは、public、private、またはprotectedとして定義できます。明示的な可視性キーワードなしで宣言されたメソッドは、パブリックとして定義されます。
デフォルトはパブリックです。常に含めることをお勧めしますが、PHP4はアクセス修飾子のないクラスをサポートしているため、レガシーコードではこれらのクラスが使用されないことがよくあります。
いいえ、PHPはパッケージの可視性がありません。これは主に最近までPHPにパッケージがなかったためです。
デフォルトはpublicです。おそらく、古いコードはパブリックであると想定しているため、下位互換性が原因であると考えられます(パブリックでないと機能しなくなります)。
デフォルトの可視性はPUBLICです
可視性 キーワード(public
、private
またはprotected
)が使用されていない場合、メソッドはpublic。ただし、この方法でプロパティを定義することはできません。 properties の場合、宣言に可視性キーワードを追加する必要があります。
クラスで宣言されていないプロパティの場合、メソッド内で値を割り当てると、パブリックに表示されます。
<?php
class Example {
public $name;
public function __construct() {
$this -> age = 9; // age is now public
$this -> privateFunction();
}
private function privateFunction() {
$this -> country = "USA"; // this is also public
}
}
function __construct()
とpublic function __construct()
は同じメソッド名として機能します。
メソッド名のプレフィックスを定義できなかった場合、デフォルトでパブリックになります。