Я запутался при чтении кода из php mannual —
в чем разница ниже двух синтаксисов —
final public string Exception::getMessage ()
против
final public string Exception::getMessage ( void )
Как говорит Мануэль, у этой функции нет параметров, тогда какова цель прохождения этой пустоты там. Хотя ничто само по себе не означает, что оно будет замечать. Так что мои вопросы —
1- Какой из них является наиболее стандартным в обоих синтаксисах и почему?
void
не является реальной языковой конструкцией. Это просто используется для декоративных целей в руководстве.
Увидеть http://php.net/manual/en/language.pseudo-types.php
недействительным
void как возвращаемый тип означает, что возвращаемое значение бесполезно. void в списке параметров означает, что функция не принимает никаких параметров.
Руководство по PHP, © 1997-2015 PHP Documentation Group, CC-BY-SA 3.0
Что ж, давай попробуем:
class Foo{
function bar(void){
}
}
Неустранимая ошибка: синтаксическая ошибка, неожиданный ‘)’, ожидание ‘&’или T_VARIABLE или … in / in / FB6Wb в строке 4
Так что разница в том, что первый действительно работает 🙂
Если серьезно, это не что иное, как синтаксис, используемый в документации для объяснения сигнатур методов, вы не должны тип это как есть.
Я могу ошибаться, но я не думаю, что это действительно задокументировано в самом руководстве. Я думаю, вы познакомитесь с ним, как только прочитаете много документации. Смотрите ответ Марио для ссылки, которая объясняет псевдотипы. Другие синтаксические биты (например, использование квадратных скобок для необязательных аргументов) являются широко распространенными соглашениями, которые датируются еще ранними днями Unix, и я не думаю, что они явно задокументированы в руководстве по PHP.