PHP OOP - Metodi statici
PHP - Metodi statici
I metodi statici possono essere chiamati direttamente, senza prima creare un'istanza della classe.
I metodi statici sono dichiarati con la static
parola chiave:
Sintassi
<?php
class ClassName {
public static function staticMethod() {
echo "Hello World!";
}
}
?>
Per accedere a un metodo statico usa il nome della classe, i due punti (::) e il nome del metodo:
Sintassi
ClassName::staticMethod();
Diamo un'occhiata a un esempio:
Esempio
<?php
class
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
// Call static method
greeting::welcome();
?>
Esempio spiegato
Qui dichiariamo un metodo statico: welcome(). Quindi, chiamiamo il metodo statico utilizzando il nome della classe, due due punti (::) e il nome del metodo (senza prima creare un'istanza della classe).
PHP - Ulteriori informazioni sui metodi statici
Una classe può avere metodi sia statici che non statici. È possibile accedere a un metodo statico da un metodo nella stessa classe utilizzando la self
parola chiave e due due punti (::):
Esempio
<?php
class greeting {
public static function welcome() {
echo "Hello World!";
}
public function __construct()
{
self::welcome();
}
}
new
greeting();
?>
I metodi statici possono essere chiamati anche da metodi di altre classi. Per fare ciò, il metodo statico dovrebbe essere public
:
Esempio
<?php
class
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
class
SomeOtherClass {
public function
message() {
greeting::welcome();
}
}
?>
Per chiamare un metodo statico da una classe figlio, utilizzare la parent
parola chiave all'interno della classe figlio. Qui, il metodo statico può essere public
o protected
.
Esempio
<?php
class domain {
protected static function
getWebsiteName() {
return "W3Schools.com";
}
}
class domainW3 extends domain {
public $websiteName;
public function __construct() {
$this->websiteName =
parent::getWebsiteName();
}
}
$domainW3 = new domainW3;
echo $domainW3 -> websiteName;
?>