Я не уверен, почему бы не выдать предупреждение или хотя бы ошибку. Тем не менее, есть некоторые основные различия в статических и экземплярах. Статический метод не может использовать переменные класса, которые не являются статическими. Что легко проверить, добавив нестатическую открытую / закрытую переменную и попытавшись отобразить ее в staticFunc
, что приведет к ошибке.
Я думаю, что главная цель - понять разницу между ними и как правильно их использовать. Что касается того, почему PHP по крайней мере не создает Уведомление, я не знаю, возможно, это связано с его непринужденной природой. Мне интересен ответ, который может дать кто-то, кто имеет больше знаний об этом, это своего рода дополнительная информация.
Я протестировал его с полным сообщением об ошибках, и, конечно же, он действительно не выдает уведомление или предупреждение.
UPDATE
При некотором тестировании кажется, что, когда вы вызываете неотмеченную статическую функцию как статическую функцию, вы все равно не можете использовать закрытые / публичные переменные. Что для нормальных функций, скорее всего, приведет к их ошибкам. Именно поэтому ошибка или уведомление никогда не появлялись. Тем не менее, было бы неплохо, чтобы он что-то об этом сказал, поскольку использование неназначенной статической функции таким образом, безусловно, нехорошо.