27 мар. 2015 г.

PHP шуточки. А вы догадаетесь, почему так?

Пишем PHP код, на всякий случай  у меня это PHP 5.3.10:

$text = 'qwerty';
$ii = 2;
$text[$ii] = 'asdf';
echo $text[$ii];


Запускаем и ожидаем увидеть на мониторе asdf. Но вместо этого видим немного не то :) Попробуйте, вам понравится. И вы вспомните добрым словом Паскаль и жёсткую типизацию переменных. И вы более внимательно станете относиться к инициализации переменных.

2 комментария:

  1. Выведется 'a'. Пойду затестю.

    Угадал! Хотя, конечно, угадал только из-за контекста поста.

    Вспомнил C++ и его жесткую типизацию, но вспомнил не только добрым словом, правда (char/wchar и конвертации между ними, когда надо работать с wchar, но тот же коннектор с MySQL может только в char).

    ОтветитьУдалить
  2. Еще кстати весьма показательно будет (что берется только первые 8 бит), если вместо "asdf" подставить любой кириллический символ (который занимает 4 байта, т. е. возьмется только первый байт или четвертинка).

    ОтветитьУдалить