Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ассоциативный массив и кавычки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: правильный синтаксис написания
SlavikSG
Отправлено: 24 Марта, 2008 - 08:47:12
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Как для новичка, мне не ясен такой момент...
Есть сторонняя, довольно большая и наворочанная программа. Когда я ее в первый раз запустил, то увидел в браузере не интерфейс программы, а длиннющий список ошибок, уходящий глубок вниз браузера. Начал разбираться в чем дело и понял, что все ассоциативные массивы написаны в коде этой программы таким образом:
$G[country] = 7;

а не так:
$G['country'] = 7;
и не так:
$G["country"] = 7;
То есть, имя в ассоциативном массиве не берется в кавычки. Если в настройках самого PHP, в файле php.ini директиву написать так:
display_errors = Off
то ошибки в браузере сразу пропадают и программа начинает замечательно работать. И вроде бы, можно было бы про это дело забыть. Но потом вылезла другая бяка. В "лог-файл" самого веб сервера Апач, в его родной файл error.log, начали писаться те же самые сообщения об ошибках, что были до этого в браузере. За ночь работы этой программы, лог-файл мог вырасти до 2ггб!!! Недовольство, огорчение

Не могу понять, как это должно лечится. Пока вижу для себя лишь один способ. Переписывать весь код этой проги и поставить везде кавычки. Это конечно можно сделать, но я просто не уверен, правильно ли это будет. Может что-то нужно в самом PHP настроить, и тогда такое написание станет вполне возможным и разрешенным? Скажите, плиииз!!!

Связка:
Windows XP SP-2
Apache HTTP Server v2.2.4
PHP v5.2.3
MySQL v5.0.45


-----
Нет в русском языке слова дешеГО. Есть слово дешеВО.
 
 Top
RomAndry Администратор
Отправлено: 24 Марта, 2008 - 09:44:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




Можно отключить вообще вывод ошибок и запись их в лог, но я бы посоветовал всеже поставить кавычки!
 
My status
 Top
EuGen Администратор
Отправлено: 24 Марта, 2008 - 09:46:51
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вам скорее всего, проще настроить Apache так, чтобы не логировались ошибки.
Автор программы, видимо, не слишком утруждал себя контролем таких вещей. Правильно, конечно, указывать все ключи ассоциативных массивов в кавычках.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SlavikSG
Отправлено: 24 Марта, 2008 - 11:00:48
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Ага, понял. Пасиб!

Значит это все же небольшой ляп со стороны разработчиков. Я уж было подумал, что оба варианта написания кода правильные и что у меня что-то на так в ПХП настроено.

Тогда у меня возникает другой вопрос. Сори, не по теме. Отключение записи в лог файл Апача ошибок не приведет ли к отключению записи туда вообще всех ошибок? Это было бы крайне нежелательно делать.


-----
Нет в русском языке слова дешеГО. Есть слово дешеВО.
 
 Top
EuGen Администратор
Отправлено: 24 Марта, 2008 - 11:45:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Если у Вас система построена на VirtualHost то нет.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SlavikSG
Отправлено: 24 Марта, 2008 - 13:45:15
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Понял. В общем, нужно изменять код. В будущем, по любому это будет удобнее.

Всем спасибо!


-----
Нет в русском языке слова дешеГО. Есть слово дешеВО.
 
 Top
valenok Модератор
Отправлено: 24 Марта, 2008 - 15:56:37
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Цитата:
Я уж было подумал, что оба варианта написания кода правильные

Ак так можно было подумать если вам php пишет: Ошибка

А для переписки кода можно воспользоваться одним и многих редакторов кода
поддерживающих автозамену с регулярными выражениями. ( Editplus.com поддерживает )


-----
Truly yours, Sasha.
 
My status
 Top
SlavikSG
Отправлено: 25 Марта, 2008 - 08:19:00
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




valenok пишет:
Цитата:
Я уж было подумал, что оба варианта написания кода правильные

Ак так можно было подумать если вам php пишет: Ошибка

Дык, ведь все же позволяет он так писать, если выключить контроль ошибок! Вот я и подумал, что если выключить или включить в настройках PHP еще что-то, то вообще все станет шоколадным. Улыбка

valenok пишет:

А для переписки кода можно воспользоваться одним и многих редакторов кода
поддерживающих автозамену с регулярными выражениями. ( Editplus.com поддерживает )

Вряд ли там прокатят регулярные выражения. Где-то кавычки все же есть, где-то их нет. Где-то кавычки нужно ставить, где-то нет. Где-то нужно учитывать знак $, где-то не нужно. В общем, по любому, нужно контролировать все глазами, которые сломаются уже через 15 минут такой автозамены. Улыбка Одна малейшая ошибка может привести к ошибке, которую потом фиг найдешь, учитывая, что это чужой код, а не мой.


-----
Нет в русском языке слова дешеГО. Есть слово дешеВО.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB