Потому что 12345 это строка. Строку можно иначе представить как массив символов. то есть 1 это $a[0], а 5 это $a[4]. Соответственно $a[1] хранит в себе число 2. Значит $a[$a[1]] тоже самое, что $a[2]. Далее меняем символ в этой ячейке на символ "h" и потому получается, что тройка заменяется на "h"
UPD: обращайтесь. Отвечу на интересующие вопросы. Пишите в агент или на почту скиньте более удобный для Вас способ связи
UPD: Ни чего я не напутал. Просто не сказал про преобразование типов. Спасибо, за уточнение
PHP
$a = "12345"'; $a[$a[1]] = "h"; echo $a; // Выведет 12h45 Почему так?
Максим Завитаев немного напутал. $a[1] хранит в себе не число 2, а символ "2". Но в php очень много неявных преобразований, что часто приводит к недоразумениям - в частности, если попытаться использовать строку как число, php автоматически попытается преобразовать ее в число, что тут и происходит.
Самая большая, по моему мнению, глупость php на эту тему - это то, что if("непустая строка") будет выполняться, как будто там истинное условие - кроме строки "0". А вот строка "0.0" уже не пустая, хотя 0.0 рассматривается как ложное условие...
Самая большая, по моему мнению, глупость php на эту тему - это то, что if("непустая строка") будет выполняться, как будто там истинное условие - кроме строки "0". А вот строка "0.0" уже не пустая, хотя 0.0 рассматривается как ложное условие...
Все просто.
$a = "12345"'; ---создается массив из символов
$a[$a[1]] = "h"; -------изменить элемент массива на h
echo $a; -- вывод
$a = "12345"'; ---создается массив из символов
$a[$a[1]] = "h"; -------изменить элемент массива на h
echo $a; -- вывод
$a[0] == "1"
$a[1] == "2"
$a[2] == "3"
....
Нумерация эл-в массива начинается с нуля.
$a[1] == "2"
$a[2] == "3"
....
Нумерация эл-в массива начинается с нуля.
Похожие вопросы
- Ребят, как на PHP написать, при нажатии на -> переменная a ($a) увеличится на 1 (i++) ?
- Что быстрее и почему? $a.$b.$c.$d; или "{$a}{$b}{$c}{$d}"
- можно ли как-то вывод (echo) перенаправить скажем, в текстовую область textarea?
- Как вывести имя и фамилию пользователя из куки? (PHP setcookie)
- Как вывести каждую строку из определённого столбца MySQL?
- Как правильно вывести что скрипт находит по части слова php7
- PHP MYSQL после ввода запроса , отображается пустая строка перед 1 кой, немогу понять Помогите пожалуйста
- Как сделать фоновый процесс, который будет блокировать запуск 1 программы пока не запущена вторая.
- Почему выводит PHP именно так?
- Почему говорят про глобальный массив $GLOBALS в то же время данные передают через сессии?