Во многих случаях, если в процессе выполнения функции возникла какая-либо ошибка, то функция возвращает
значение FALSE в качестве своего результата. Так поступают многие встроенные функции в РНР, и этот же
прием можно использовать и в своих собственных функциях.
РНР также допускает описание функции внутри функции — т.е. вложенные функции. Как и в случае функций,
описанных условно, вложенная функция становится доступной только после вызова функции, внутри
которой она описана, что и представлено в пример.
РНР является интерпретируемым языком, что, в частности, означает, что в том случае, если функция
описывается в теле условного оператора if, она не будет доступна для вызова до тех пор, пока
тело оператора не будет выполнено.
Если скрипт является достаточно длинным и разрабатывается продолжительное время, легко сделать
ошибку и использовать одно и то же имя переменной для разных применений, что неминуемо
приведет к конфликту при выполнении программы. Ошибки такого рода
(особенно если совпадает тип использованных значений) обнаружить достаточно затруднительно.
Помимо передачи аргументов функции по ссылке имеется возможность вернуть ссылку как результат вызова функции.
Это может быть необходимо при дальнейшем использовании ссылок в коде программы.
Функция может вернуть в качестве своего результата не только скалярное значение,
но и целый массив. Для этого используется тот же самый оператор return, описанный в предыдущем статье.