<?php
class T {
public function x(){
return true;
}
}
var_dump(T::x());
class X {
public function x(){
return true;
}
}
var_dump(X::x());
Этот код приводит к:понимание обработки PHP статических методов (не статический метод не может быть вызван статически)
bool(true)
PHP Fatal error: Non-static method X::x() cannot be called statically in test.php on line 16
Почему T :: х() работает (когда он выйдет из строя) и X :: x() не работает (как должно)?
хорошо, себя, родителей и статические также делают не-статические вызовы. Вы уверены, что '$ x = T :: x();' успешно ?! – bwoebi
Обратите внимание, что в testY() вы создаете объект T, но не объект X. Кажется, это имеет значение. – Oniofchaos
@bwoebi, это именно то, что я нахожу странным во всем этом. Я копирую вложенное ядро, которое я запускаю. не стесняйтесь воспроизводить и видеть, работает ли он иначе. также будет обновляться с помощью моих версий php/phpunit, что может быть полезно. – gcb