| |
|
|
| | Пример:
class MyFirstClass {
static $oTest = '123456';
function test() {
echo self::$oTest;
}
}
class MyLastClass extends MyFirstClass {
static $oTest = '654321';
}
echo MyLastClass::test();
|
Хочу что бы был результат: 654321. Как добиться? | |
| |
|
|
| |
|
|
| |
для: p.pavluxa
(15.02.2014 в 01:12)
| | | а вы к чему обращаетесь то?
function test() {
echo self::$oTest;
echo MyLastClass::$oTest;
}
Статическая переменная существует только в локальной области видимости функции, но не теряет своего значения, когда выполнение программы выходит из этой области видимости
и к не статичным методам обращайтесь через объект | |
| |
|
|
| |
|
|
| |
для: moonfox
(15.02.2014 в 03:49)
| | | Вот мне нужно сделать так что бы метод test() распечатывал содержимое переменной статической $oTest того класса который наследует основной, а если вызов без наследования то статически заданный по умолчанию. | |
| |
|
|
| |
|
|
| |
для: p.pavluxa
(15.02.2014 в 01:12)
| | | вот так измените класс
<?php
class MyFirstClass {
static $oTest = '123456';
function test() {
echo static::$oTest;
}
}
class MyLastClass extends MyFirstClass {
static $oTest = '654321';
}
|
почитайте вот это http://php.net/manual/ru/language.oop5.late-static-bindings.php
вообще не советую сильно увлекаться статическими членами/методами, это противоречит принципам ооп | |
| |
|
|
| |
|
|
| |
для: psychomc
(15.02.2014 в 13:55)
| | | Супер! Спасибо | |
| |
|
|