it-swarm.com.de

Greifen Sie mit auf Statische Eigenschaften zu PHP Objekt

Dies bezieht sich auf Holen Sie sich eine statische Eigenschaft einer Instanz , ich bin ein Neuling und habe den folgenden Code:

class Foo
{
   public static $my_static = 1;
}

class Bar extends Foo
{

}

$foo = new Foo();
$boo = new Bar();

echo Foo::$my_static;  // ok
echo Bar::$my_static;  // ok
echo $foo::$my_static; // ok
echo $boo::$my_static; // ok

Auf statische Variablen/Eigenschaften kann nur wie in C++ als ClassName :: static_property zugegriffen werden. Dies ist jedoch in PHP nicht der Fall. In PHP - Büchern wird meistens der className erwähnt: : static_property pattern, nicht das object :: static_property - Konstrukt. Brauchen Sie mehr Licht auf dieses ..

18
user2314576

Auf statische Eigenschaften kann auf verschiedene Arten zugegriffen werden.

Class::$aStaticProp; //by class name

$classname::$aStaticProp; // As of PHP 5.3.0 by object instance

Auf statische Eigenschaften kann nicht mit dem Pfeiloperator -> über das Objekt zugegriffen werden.

Ab PHP 5.3.0 ist es möglich, die Klasse über eine Variable zu referenzieren. Der Wert der Variablen darf kein Schlüsselwort sein (z. B. self, parent und static).

Mehr kannst du in manual nachlesen.

20
Robert

$instance::$staticProperty ist einfach eine Abkürzung für Class::$staticProperty. Da Sie bereits über eine Instanz von class verfügen und die Syntax eindeutig ist, erspart Ihnen PHP das Schreiben eines möglicherweise langen Klassennamens. Es gibt keinen funktionalen Unterschied.

10
deceze

innerhalb der Klasse müssen Sie wie self :: $ staticPropery verwenden, wenn die Funktion, die auf die Variable zugreift, auch statisch ist.

0
Alp Altunel