2013-12-10 5 views
0

Я не знаю, как его искать, поэтому я прошу вас здесь.Невозможно использовать переменную из включенного PHP-файла

Ситуация следующая:

Получил VServer с корнем. Установлены и запущены Apache, PHP5, MySQL.

Теперь у меня есть index.php, где я хочу include 'config.php';. Простая вещь!

В config.php У меня есть переменная типа $url = 'http://xxxxxxx';, но я не могу получить к ней доступ в index.php. Там просто пустой массив, когда я print_r(parse_url($url));.

Любопытно, что когда я подключен к ssh на сервере и запускаю php index.php, выход представляет собой весь массив, как ожидалось.

У вас есть идеи ?!

+2

Попробуйте переключиться с 'include', чтобы потребовать. Единственное, что я могу придумать, это может быть причиной того, что ваш включенный файл не найден. – andrewsi

+0

Просто попробовал, он тоже не работает. Когда я хочу включить не существующий файл, мой сайт ничего не загружает (может быть, нужно исправить обработку ошибок ..) – SebaGnich

+0

Я не уверен, что вы имеете в виду; когда вы использовали 'require', вы получили сообщение о том, что он не смог найти файл (и так не работал)? Или он попытался запустить, но все же отобразил пустой массив для '$ url'? – andrewsi

ответ

1

Вы пытались включить свой config.php с абсолютным путем, например. включают в себя ('/ уаг/WWW/config.php');

+0

Да, просто попробовал это. Но это не помогло :( – SebaGnich

+0

Попробуйте var_dump ($ url) и посмотрите, признано ли его. – user2428668

+0

Это говорит 'NULL' .. – SebaGnich

0

Лучшая стратегия для файла конфигурации будет иметь его записать в следующем формате:

<?php 
    return array(
     'url' => 'http://xxxxxxx', 
     ... 
    ); 

Тогда в вашем index.php вы можете сделать $config = require('wherever/it/is/config.php') и получить доступ к параметрам, как $config['url']. В противном случае вам, вероятно, придется использовать глобальные переменные, которые практически никогда не являются хорошей практикой.

+0

Вот как я хочу это сделать позже, но пока мне просто нужно получить доступ к любой переменной, прежде чем расширяя мою конфигурацию. – SebaGnich

+0

Итак, просто убедитесь, что вы используете глобальную версию переменной $ url', потому что, например, если вы делаете свой include, то пытаетесь использовать переменную из функции, не объявляя ее как глобальный, это будет совершенно другая переменная. Подробнее см. Здесь [здесь] (http://www.php.net/manual/en/language.variables.scope.php). Извините, если я заявляю очевидное, но без полного списка все, что я могу сделать, это предположить. :) – bredikhin

+0

Это даже не функция. Я просто не могу получить к нему доступ после включения. – SebaGnich

0

Черт, я так глуп.

У меня было что-то вроде:

config.php

foreach { 
    if(true){ 
     something; 
     return false; 
    } 
} 
$url = ...; 

Я просто хотел, чтобы остановить foreach, если она была успешной. Может быть, работал слишком хорошо ..

Но я не понимаю, почему он не имел каких-либо ошибок при php ИНГ его в терминале ..

Спасибо, ребята!

Смежные вопросы