Intereting Posts

«Использование неопределенного постоянного» уведомления, но константа должна быть определена

существует три файла: common.php, controller.php и user.php.

Файл common.php выглядит так:

<?php define("MAXIMUM_NAME_LENGTH", 50); ?> 

Файл controller.php выглядит так:

 <?php include("common.php"); include("user.php"); $user = new user(); ?> в <?php include("common.php"); include("user.php"); $user = new user(); ?> в <?php include("common.php"); include("user.php"); $user = new user(); ?> 

Файл user.php выглядит так:

 <?php class user{ private $var = MAXIMUM_NAME_LENGTH; } ?> 

При выполнении скрипта выдается уведомление: Примечание: использование неопределенной константы MAXIMUM_NAME_LENGTH – предполагается «MAXIMUM_NAME_LENGTH» в /…/controller.php в строке xxx. Я хочу поделиться определенными значениями в common.php между другими файлами. Как это сделать правильно?

Как правило, у вас есть все определения, включенные в файл, который будет их использовать. IE: В вашем примере сделайте файл класса $class->setMaxNameLength(); метод и пропустите длину имени, определите в нем, таким образом, он не выведет вас на ошибку.

Разместить error_reporting(E_ALL); строка перед include("common.php"); ,

Скорее всего, вы увидите что-то вроде:

 Warning: include(common.php) [function.include]: failed to open stream: No such file or directory in xxx 

что ваши три файла находятся не в одной папке вместе или вместе в пути, который не находится в вашем include_path , или в сочетании с этим.

РЕДАКТИРОВАТЬ:

Если вы используете Suhosin , проверьте настройки suhosin.executor.include.* .