То, что я пытаюсь сделать, это иметь отдельный файл PHP, содержащий настройки для веб-сайта, а затем другие страницы включают этот файл и выполняют код в соответствии с настройками. Однако всякий раз, когда я использую global для ссылки на эти переменные внутри класса, переменные пусты. Например:
Settings.php :
<?php
$setting1 = 'on';
$setting2 = 'off';
?>
Class.php :
<?php
require_once('./settings.php');
class myclass {
public function __construct {
global $setting1;
echo $setting1;
}
}
$object = new myclass;
?>
Это ничего не печатает. Однако, если я делаю «echo $setting1» вне класса, он печатает «on». Когда я попытался установить переменную внутри самого файла, а не включать ее, она печаталась «вкл», когда я создавал новый объект для моего класса. Есть ли что-то особенное, что мне нужно сделать, чтобы сделать включенные переменные доступными в глобальной области видимости для класса?
2 ответа
Вашему конструктору нужны скобки после его имени, например.
public function __construct() {
}
Я подозреваю, что это приводит к фатальной ошибке, которая не отображается из-за вашего display_errors / отчет об ошибках настройки.
Вы пропустили скобки:
public function __construct {
Должно быть
public function __construct( ) {
Результат:
$ php -v
PHP 5.2.5 (cli) (built: Nov 29 2007 09:31:38)
2007-Macbook:Desktop mark$ php class.php
on
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.