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 :: Непонятная ситуация со строкой
Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2014
Помог: 0 раз(а)
Добрый день.
Не могу понять, подскажите, что это за ...
$string = "привет";
echo $string['blahblah']; //выдает какой-то символ �
echo gettype($string['blahblah']);// выдает string
$is_set = isset($string['blahblah']); //выдает true
Что это за символ такой непонятный? Почему, isset выдает true?
Спасибо.
Мелкий
Отправлено: 15 Января, 2014 - 15:37:08
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
А вы что хотели получить?
Строки позволяют самих себя адресовывать побайтово. $string[0] - первый байт, $string[1] - второй байт этой строки. Каким байтом будет считаться текстовый индекс - без проверки не скажу. И в целом этим пользоваться не рекомендовал бы, т.к. в будущем планируется сменить байтовую нумерацию на символьную.
----- PostgreSQL DBA
EuGen
Отправлено: 15 Января, 2014 - 15:40:48
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Мелкий
У строк никогда не было и не планируется "текстовых" индексов. Строка - не массив, её индексы могут быть только целыми неотрицательными значениями. Всё, что не-целое, будет приведено к целочисленному типу. Например, индекс "3.5" будет интерпретирован как "3". А упомянутое "blabla" - как 0. Разумеется, при этом будет сгенерировано предупреждение.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Мелкий
Отправлено: 15 Января, 2014 - 16:02:37
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
EuGen пишет:
У строк никогда не было и не планируется "текстовых" индексов
Вероятно, неверно выразился.
Насколько знаю, в PHP6 планируется изменить смысл обращения $string[0] с получения первого байта строки на первый символ строки.
----- PostgreSQL DBA
EuGen
Отправлено: 15 Января, 2014 - 16:15:16
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
В PHP6 ничего не планируется, так как, увы, PHP6 ещё не планируется - на текущий момент.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
papko
Отправлено: 15 Января, 2014 - 18:31:12
Новичок
Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2014
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.