2015-02-11 3 views
0

Я новичок на сайте (привет!), И у меня была проблема, которую я пока не могу решить. Я ищу его, но никаких результатов. Я думаю, что это глупо, но я не могу найти решение.Конфиг. Котировки на vars PHP

Я перенастройка системы (PHP) на другой сервер (оба CentOS) и у меня есть проблема с кавычками в PHP вары

example: 
    -------- 
    $_GET[var] 
    $db_reg[assoc] 
    $array[value] 
    define(NAME,'value') 
    etc.. 

Всех случаев можно исправить, добавив котировку индексов, но дело в том, что у меня есть тысячи php-файлов, с миллионами строк каждая, и я не могу проверить один за другим .. это займет около двух жизней.

В старом сервере, он работает нормально, но в новом, то вары не распознаются, показывает PHP Примечание:

"Notice: Use of undefined constant XXXX - assumed 'XXXX in..." 
(ej: $_POST[XXXX]) 

какие-либо конфигурации на Apache или PHP для признания или нет (неразборчиво) цитаты на варсах?

Версия php на обоих серверах одинакова, и я проверил php.ini и схожу.

Цените свою помощь, благодарите заранее.

Daniel

+0

Я думаю, что лучший способ решить это - преобразовать все старые сценарии в использование кавычек. Я знаю, что звучит страшно и делать это вручную вручную, вероятно, нецелесообразно на основе вашего описания. Это может быть интересной задачей программирования для сканирования всего исходного кода и изменения всех вхождений [кое-чего] в ['something']. Конечно, у вас должны быть исключения для [$ something] и т. Д. Но это правильный способ сделать это сейчас (и всегда был на самом деле). Все остальное было бы обходным решением, которое PHP, возможно, в конечном итоге покончит с этим. – theglossy1

+0

Я знаю, правильный способ - это изменить все .. но система устарела и устарела, на самом деле я переделаю ее, начиная с нуля .. так что я не считаю это необходимым, я хочу, чтобы похоронить определенно .. Спасибо в любом случае :) – Daniel

ответ

0

Угадайте вам нужна информация о переменных и их использование (при работе с массивами) и фиксированных конкрементов индекса

Использование переменных:

$array = array('hi', 'you', 'there'); 
$i = 1; 
echo $array[$i]; // -> works and is **fine** (will output 'you') 

// -------------------------------- 

$array = array('a' => 'hi', 'b' => 'you', 'c' => 'there'); 
echo $array['a']; // -> works and is **fine** 
// note: in especially that case **NEVER** user bare-words like this: echo $array[a] for >> a << here is expected to be a constant which (mostly) does not exist ! 
// php is so fuzzy that it will mostly interpret around like insane and output you the desired value ('hi' in that case) but that was never meant to be! And should always be prevented. Thats the reason for you getting that notice... 

// So never do this: 
echo $array[a]; 
// ... if >> a << is NOT a valid and available contant 

Важно (суммируются в point): Слова без кавычек и доллара считаются константами, которые вы, возможно, не используете очень часто. В большинстве случаев вы используете кавычки (как описано выше) или вещественных переменных (идентифицированные $) в качестве индекса для доступа к структурам данных/Массивы

+0

Спасибо за ответ! Но есть ли способ config (apache, php и т. Д.) Для распознавания без кавычек? Я не могу изменить все вары в системе. Почему на старом сервере работает отлично, а новый терпит неудачу? Должно быть что-то, что я пропустил .... Спасибо – Daniel

+0

@ Daniel Добро пожаловать. Пожалуйста, отметьте ответ, который поможет вам решить проблему как «Решение». Это заставляет людей, которые получили ту же проблему и найти ваш вопрос, смогут легко определить ответ на свою проблему. – serjoscha

+0

Спасибо .. Я буду помнить это, когда вы найдете решение :) – Daniel

0

Ну вы можете попробовать отредактировать файл php.ini: изменение error_reporting = E_ALL к error_reporting = E_ALL & ~ E_NOTICE Это отключит все уведомления, но не обязательно будет уверен, что эта проблема будет устранена. Пожалуйста, попробуйте сообщить нам, если это работает или нет для вас.

+0

Неправильный способ подавить предупреждения, потому что они печатаются по какой-то причине. Правильный путь - это больше, чтобы исправить причину, по которой php выводит предупреждение. Тем не менее это превосходит людей, чтобы научиться писать более чистый код – serjoscha

+0

Спасибо! Но моя проблема заключается не в том, чтобы печатать предупреждение или уведомление .. проблема в том, что система не работает должным образом из-за варов без кавычек ... Мне нужно активировать что-то вроде «распознавать вары без кавычек» – Daniel

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