Php не работает? функция не включена

Вот полный контекст ситуации:

Недавно у меня появился новый Mac, я разработчик php, поэтому я загрузил MAMP и начал развиваться.

Сначала я заметил, что мои включения не включались, но я изменил это, настроив свой php.ini .

Однако теперь, когда я пытаюсь включить файл с функцией, он не распознает функцию.

Например, у меня есть файл с именем functions.php :

 <?php function doit(){ echo "did it"; } ?> 

и файл, который включает его, называется index.php

 <?php include("functions.php"); doit();?> 

и я получаю это сообщение об ошибке

Неустранимая ошибка: вызов неопределенной функции doit () в index.php в строке 4

Solutions Collecting From Web of "Php не работает? функция не включена"

Иногда текущий каталог не тот, который вы ожидаете от него, например, когда вы включаете файл из включенного файла.

Мне нравится использовать $_SERVER['DOCUMENT_ROOT'] для моих включений, чтобы я всегда мог ссылаться на них абсолютно из корня моего сайта:

 <?php include($_SERVER['DOCUMENT_ROOT']."/includes/functions.php"); doit(); ?> в <?php include($_SERVER['DOCUMENT_ROOT']."/includes/functions.php"); doit(); ?> 

Если ваш каталог include находится выше вашего корня документа, вы можете использовать .. для по-прежнему ссылки из корня.

Поэтому, если кто-либо споткнется на этом форуме, потому что у них такая же проблема, позвольте мне объяснить, что и почему это пошло не так.

Если вы включите функцию не в свой каталог (например, c: // или файл: //), но вместо этого включите использование http. Включение может возвращать только то, что было отражено в файле, но что-то вроде переменной или функции не будет отображаться. Поэтому всегда включайте функции и переменные через каталог

Попробуйте require () вместо include. Возможно, включение происходит с ошибкой, и ошибки не отображаются.

У меня тоже есть эта проблема.

В моем случае я узнаю, что это может быть ваш файл functions.php. Разрешено.

Попробуйте «chmod 777 functions.php» на сервере.

Пусть функции.php могут выполняться на веб-сервере.

Спасибо Thatjuan, Becasue, когда я перейду на использование require (), сервер отобразит правильное сообщение об ошибке.

Для меня проблема связана с именем функции во включенном файле с тем же именем, что и функция в исходном файле.

Я сделал все имена функций уникальными и больше не имею проблемы.