Подскажите какие настройки в PHP заставляют выполняться этот код

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#11

Всё ясно, пропустил в мануале эту разницу. Хе.

А можно ещё более тупой вопрос... А нафиг это сделали?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
S
На сайте с 23.05.2004
Offline
316
#12

Если в 5.2.17 не работает - то баг именно в том, что не работает. Вообще ориентироваться на версии полутора летней давности имхо не правильно.

А нафиг это сделали?

Сделали что ?

Это просто подпись.
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#13
Stek:
Если в 5.2.17 не работает - то баг именно в том, что не работает. Вообще ориентироваться на версии полутора летней давности имхо не правильно.


Сделали что ?

В 5.3.16 тоже ошибку возвращает, а не 6.

KS
На сайте с 11.06.2012
Offline
17
#14

Посмотрел сейчас в 5.3.13, $s[2][0] - выдаёт ошибку, но что интересно,

$s='abcdef';

$s1=$s[2];

echo $s1[0];

- ошибку не выдаёт, печатает "с".

Я думаю, речь тут не о багах, просто в 5.4 изменили внутренний механизм доступа к буквам в строках.

FileSafe (http://filesafe.anek.ws/) - мониторинг неизменности файлов сайта для защиты от взлома. Для форумчан - первый год бесплатно.
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#15

Короче, ТС, пересматривайте костыльки в скриптах, ваш подход очень хрупок :)

dkameleon
На сайте с 09.12.2005
Offline
386
#16
LEOnidUKG:
Короче, ТС, пересматривайте костыльки в скриптах, ваш подход очень хрупок

абсолютное +100500 :)

особенно меня поразило ожидание эксепшена.

будто в случае эксепшена выполняется какой-то значимый код.

Дизайн интерьера (http://balabukha.com/)
L
На сайте с 07.12.2007
Offline
351
#17
Stek:
со строкой можно работать как с массивом.

Можно, но если строка, например, в UTF-8, то символ не выгребется, а только байт от него.

Поэтому, голосую за:

LEOnidUKG:
Короче, ТС, пересматривайте костыльки в скриптах, ваш подход очень хрупок :)
DavyJohnes
На сайте с 05.01.2011
Offline
84
#18
dkameleon:

будто в случае эксепшена выполняется какой-то значимый код.

Ну а почему нет? Вдруг у ТСа Exception Handler определен, и все исключения заносятся в БД для полного контроля над ошибками.

https://handy-tools.io (https://handy-tools.io) - Набор полезных утилит для всех!
T0
На сайте с 11.10.2012
Offline
2
#19

LEOnidUKG, потому, что язык не строго типизированный.

И конкретно строку можно представить в виде одномерного массива. Одномерного. Отсюда ошибка, когда глубже обратиться пытаются. Пример из 15го поста как раз это иллюстрирует хорошо. В новой версии, судя по всему, решили автоприведение типов поставить на новые рельсы.

Экологически чистое комментирование: eComment.su
babnicks
На сайте с 23.10.2009
Offline
47
#20
LEOnidUKG:
Короче, ТС, пересматривайте костыльки в скриптах, ваш подход очень хрупок :)

Там были не "костыльки", а нормальная проверка isset на двухмерный массив. isset( $a[0][0] ) теперь даёт true если $a это строка. Понятно что is_array( $a[0] ) спасёт, но если что-то работает одним образом, а потом начинает другим... это всегда не очень приятно...

dkameleon:
не понимаю вашу логику...
...
...
по логике вещей так должно было работать изначально и просто был исправлен баг, предыдущих версий.

Не моя логика, а логика PHP предыдущих версий :) Это очевидно что он начал вдруг понимать что это тоже строка, вопрос был не в этом.

У меня был вопрос есть-ли какая-нибудь настройка в PHP которая отвечает за этот "вдруг"...

Понял что настройки такой нет, а это просто PHP 5.4

100% защита от спам-ботов (https://www.keycaptcha.com)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий