Вопрос в заголовке.Как вы объявляете метод открытым, но не статическим в PHP?
ответ
Они не являются статическими по умолчанию:
public function method() {
}
Вы получите E_STRICT
, если вы звоните статически, но я не думаю, что вы можете легко применять, что его можно назвать только на экземпляре -
если вы попытаетесь проверить
Вы можете сделать $this
Я думаю, вы получите сообщение об ошибке.
isset($this)
, так как Artefacto говорит и генерирует исключение, если оно не установлено.
Вы можете создать исключение, если 'isset ($ this)' is 'false'. – Artefacto
Это все еще можно назвать статической функцией. –
@Artefacto Вы видели какой-либо код, делающий это явно во всех нестатических методах? Это выглядит громоздким. Надеюсь, вы получите какую-то ошибку внутри метода, если $ this не задано. –
<?php
class abc() {
public function foo() {
...
}
}
$c = new abc();
$c->foo();
?>
foo() все равно будет доступен через abc :: foo(). –
да, это правда. Я не знаю другого способа сделать это. Функция является общедоступной и объектно-ориентированной (это метод) – Aziz
<?php
class abc() {
public function foo() {
if (!isset($this)) {
throw new Exception('Method is non-static.');
exit();
}
}
}
$c = new abc();
$c->foo();
?>
Не тестировалось.
- 1. Как вы объявляете распределитель?
- 2. Метод Invokemember не может вызвать метод под открытым статическим классом
- 3. Как вы объявляете класс встроенным?
- 4. Как вы объявляете общий std_logic_vector в VHDL?
- 5. Как вы объявляете массивы в заголовке C++?
- 6. Как вы объявляете этот макрос в lex?
- 7. Как вы объявляете встроенный делегат Predicate?
- 8. Как вы объявляете строковые константы в C?
- 9. Как вы объявляете 'const' в реакции-native?
- 10. Как вы объявляете массив объектов в Java?
- 11. Как вы объявляете глобальную переменную в Xcode?
- 12. Как вы объявляете состояния компонентов в ActionScript?
- 13. AS3 Как вы объявляете глобальную переменную?
- 14. Как вы объявляете TreeMap - SortedMap или Map?
- 15. Как вы объявляете массив констант указателей функций?
- 16. Java: Как вы объявляете вложенную карту весной?
- 17. Как вы объявляете не подлежащие коммутации переменные в julia?
- 18. Как вы объявляете пользовательскую аннотацию oData
- 19. Как часто вы объявляете свои функции const?
- 20. Как сделать метод статическим?
- 21. Не удается сделать статический метод не статическим
- 22. ce.Apparently метод не является статическим
- 23. Как вы объявляете временные строки для повторного использования в C?
- 24. В coq, как вы объявляете/подтверждаете элементы перечисления, различны?
- 25. Как вы объявляете тип узла из класса LinkedList в Java?
- 26. Когда вы объявляете указатель, это NULL?
- 27. Как вы объявляете псевдоним типа в конструкторе scala?
- 28. Как вы объявляете значения словаря в качестве изменяемого?
- 29. Как вы объявляете переменную C# в переменную типа HTML?
- 30. Как вы объявляете предложение «присваивает» многомерным массивам в frama-c?
@ Gordon: Спасибо! Я обновлю вопрос, чтобы ответить на этот вопрос. –