Это происходит, когда вы обычно вызываете файл include
, require
или fopen
, и PHP не смог найти файл или не имел достаточного разрешения на загрузку файла.
Это может произойти по разным причинам:
Одна из распространенных ошибок заключается в том, чтобы не использовать абсолютный путь. Это можно легко решить, используя полный путь или магические константы , такие как __DIR__
или dirname(__FILE__)
:
include __DIR__ . '/inc/globals.inc.php';
или:
require dirname(__FILE__) . '/inc/globals.inc.php';
Обеспечение правильного пути используется одним шагом в устранении этих проблем, это также может быть связано с несуществующими файлами, правами файловой системы, предотвращающими доступ или открытыми ограничениями на основе самого PHP.
Лучший способ для быстрого решения этой проблемы необходимо выполнить контрольный список устранения неполадок ниже.
Вопросы, относящиеся:
Связанные ошибки:
Перейдите к своим настройкам Target или Project, нажмите значок Gear на левую нижнюю часть и выбор, "Добавьте Пользовательская Установка". Новое имя установки должно быть GCC_PREPROCESSOR_DEFINITIONS
, и можно ввести определения в правом поле.
На комментарии Steph, полный синтаксис:
constant_1=VALUE constant_2=VALUE
Примечание, которое Вы не делаете потребность '=, если Вы просто хотите к #define символ, вместо того, чтобы дать ему значение (для #ifdef
операторы)
Вы не должны создавать пользовательскую установку. Встроенная установка "Preprocessor Macros" работает просто великолепно. сопроводительный текст http://idisk.mac.com/cdespinosa/Public/Picture%204.png
, Если у Вас есть несколько целей или проектов, которые используют тот же файл префикса, используйте Макросы Препроцессора, Не Используемые В Предварительно скомпилированных Заголовках вместо этого, таким образом, различия в Вашем макроопределении не инициировали ненужный дополнительный набор предварительно скомпилированных заголовков.
Он находится в разделе «Предварительная обработка GCC 4.2» (или просто введите «препро» в поле поиска) ...
... однако, хоть убей, я не могу получить чтобы он работал.
У меня есть стандартные конфигурации отладки и выпуска, и я хочу определить DEBUG = 1 в конфигурации отладки. Но после добавления его в качестве значения:
(в окне настроек)> Макросы препроцессора: DEBUG = 1
#if DEBUG
printf("DEBUG is set!");
#endif
... никогда не печатает / не вызывается. Это сводит меня с ума ...
В ответ на комментарий Кевина Лэйти (см. cdespinosa), о разделе предварительной обработки GCC, который не отображается в настройках вашей сборки, сделайте активным SDK тот, который говорит (Базовый SDK) после него, и этот раздел появится. Вы можете сделать это, выбрав меню «Проект»> «Установить активную цель»> «XXX (базовый SDK)». В разных версиях XCode (базовый SDK) могут быть разные, например (настройка проекта или значение проекта по умолчанию).
После появления этого раздела вы можете добавить свои определения в макрос процессора, а не создавать пользовательские настройки.