Widziałem ten przykład z php.net:Jak uzyskać dostęp do stałej zdefiniowanej w klasie potomnej z funkcji klasy nadrzędnej?
<?php
class MyClass {
const MY_CONST = "yonder";
public function __construct() {
$c = get_class($this);
echo $c::MY_CONST;
}
}
class ChildClass extends MyClass {
const MY_CONST = "bar";
}
$x = new ChildClass(); // prints 'bar'
$y = new MyClass(); // prints 'yonder'
?>
Ale $ c :: MY_CONST ujmuje się tylko w wersji 5.3.0 lub nowszej. Klasa, którą piszę, może być bardzo rozproszona.
Zasadniczo zdefiniowałem stałą w klasie ChildClass, a jedna z funkcji w klasie MyClass (klasa ojca) musi korzystać ze stałej. Dowolny pomysł?
Nie rozumiem, dlaczego ludzie sięgają głęboko w OOP w innych odpowiedziach. Twoje rozwiązanie jest jedyne słuszne i prostsze. –
Coś jest nie tak z dostępem do 'const' przy użyciu słowa kluczowego' static'. Czy możesz wyjaśnić, dlaczego to działa? PHP Docs również mnie zdezorientowało. Dzięki. – pavlindrom
Lub 'self :: MY_CONST' – checksum