Ich habe mir das Handbuch angesehen , aber ich kann die Antwort anscheinend nicht finden.
Was ist die Standardsichtbarkeit in PHP für Methoden ohne Sichtbarkeitserklärung? Hat PHP eine Paketsichtbarkeit wie in Java?
Ist der folgende Code beispielsweise go()
öffentlich oder privat?
class test {
function go() {
}
}
Der Grund, den ich gefragt habe, ist, dass ich viele Konstruktoren gesehen habe, die als function __construct()
und einige als geschrieben wurden public function __construct()
. Sind sie gleichwertig?
php
oop
visibility
Yada
quelle
quelle
Standard ist öffentlich. Es ist eine gute Praxis, es immer einzuschließen. PHP4-unterstützte Klassen ohne Zugriffsmodifikatoren werden jedoch häufig nicht in Legacy-Code verwendet.
Und nein, PHP hat keine Paketsichtbarkeit, hauptsächlich weil PHP bis vor kurzem keine Pakete hatte.
quelle
Der Standardwert ist public. Der Grund ist wahrscheinlich die Abwärtskompatibilität, da der alte Code erwartet, dass er öffentlich ist (er würde nicht mehr funktionieren, wenn er nicht öffentlich wäre).
quelle
Quelle
quelle
Wenn keine Sichtbarkeit Schlüsselwort (
public
,private
oderprotected
) verwendet werden Methoden seiner Öffentlichkeit . Auf diese Weise können Sie jedoch keine Eigenschaften definieren. Für Eigenschaften müssen Sie ein Sichtbarkeitsschlüsselwort an die Deklaration anhängen.Für Eigenschaften, die nicht in der Klasse deklariert sind und denen Sie innerhalb einer Methode einen Wert zuweisen, ist sie öffentlich sichtbar.
quelle
function __construct()
undpublic function __construct()
funktioniert wie der gleiche Methodenname.Wenn Sie das Präfix für einen Methodennamen nicht definieren konnten, sollte es standardmäßig öffentlich sein.
quelle