Я новичок на сайте (привет!) И у меня возникла проблема, которую я пока не могу решить. Я ищу это, но безрезультатно … Я думаю, что это глупо, но я не могу найти решение.
Я перевожу систему (php) на другой сервер (оба CentOS), и у меня проблема с кавычками в php vars
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 для распознавания или не (нечетких) кавычек на vars?
Версия php на обоих серверах одинакова, и я проверил php.ini и похожи.
Ценю вашу помощь, спасибо заранее.
Даниил
Думаю, вам нужна некоторая информация о переменных и их использовании (при работе с массивами) и фиксированных индексных конкрециях
Использование переменных:
$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
Важно (суммировано до сути):
Слова без кавычек и доллара считаются константами, которые вы, возможно, используете не очень часто. В большинстве случаев вы используете кавычки (как описано выше) или реальные переменные (обозначенные $) в качестве индекса для доступа к структурам данных / массивам
Ну, вы можете попробовать отредактировать файл php.ini:
менять
error_reporting = E_ALL
в
error_reporting = E_ALL & ~ E_NOTICE
Это отключит все уведомления, но не уверен, уверен ли, что это решит вашу проблему. Пожалуйста, попробуйте и дайте нам знать, если это работает или не для вас.