Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
php: логика работы оператора @ зависит от окружения ?
|
|||
|---|---|---|---|
|
#18+
Имеется 2 сервера - на одном php 5.6 , на другом - php 5.4 . В обоих конфигах: Код: php 1. На обоих серверах проверено через phpinfo: error_reporting = 32767 Вот этот код: Код: php 1. 2. 3. 4. в первом случае никаких notice не генерирует, во втором - генерирует ( Undefined property: cl::$ttt ). Логично предположить, что в версии 5.4 оператор подавления не распространяет своё действие на вложенные выражения, в версии 5.6 - распространяет. Только вот на 1-м сервере ранее был php 5.3.3 - и никаких notice также не генерировалось. Так в чём причина ? Может, какие-то другие настройки php влияют на поведение этого оператора ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2016, 21:42 |
|
||
|
php: логика работы оператора @ зависит от окружения ?
|
|||
|---|---|---|---|
|
#18+
Cyrax_02, А это имеет значение? Синтаксис для лентяя :)) Я бы это лучше написал вот так: Код: php 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2016, 03:09 |
|
||
|
php: логика работы оператора @ зависит от окружения ?
|
|||
|---|---|---|---|
|
#18+
авторА это имеет значение? Синтаксис для лентяя :))В проекте используется ряд сторонних библиотек ( smarty и пр.), которые активно используют оператор @. Причём так, как показано в моём примере - для подавления ошибок при выполнении внутренних выражений. В итоге на php 5.4 получаем туеву хучу notice 'ов в логах. Посему задачу необходимо решить, не изменяя исходников этих библиотек и сохраняя уровень логирования NOTICE . На php 5.4 (если это из-за версии). Может, всё-таки не в версии дело ? Что из окружения может влиять на поведение @ ? И почему в официальной справке про это поведение ни слова ? И во всём Интернете - ни слова ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2016, 13:48 |
|
||
|
php: логика работы оператора @ зависит от окружения ?
|
|||
|---|---|---|---|
|
#18+
Cyrax_02На php 5.4 (если это из-за версии).Затестил из командной строки на двух машинах с 5.4.36 (дебиан) и 5.4.45 (фряха) - собака давит нотис и там и там. Cyrax_02при выполнении внутренних выраженийНе припомню, чтобы в документации что-то было про внутренние (и внешние) выражения. Насколько понимаю, под выражением принимается всё до конца строки или закрывающей скобки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2016, 14:48 |
|
||
|
php: логика работы оператора @ зависит от окружения ?
|
|||
|---|---|---|---|
|
#18+
Как оказалось, дело в окружении. Не в версии php . А именно - в xdebug . Настройка xdebug.scream была включена: авторxdebug.scream Type: boolean, Default value: 0, Introduced in Xdebug >= 2.1 If this setting is 1, then Xdebug will disable the @ (shut-up) operator so that notices, warnings and errors are no longer hidden.Все настройки php просмотрел - ничего похожего не нашёл. А на xdebug не подумал, поскольку ошибки реально подавлялись (в тот момент xdebug был отключен - поэтому и подавлялись). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2016, 16:04 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=39355279&tid=1460838]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 349ms |

| 0 / 0 |
