echo '3' + '0.5' , print('2') + 1;
вывод: 3.531
всё разобрался с своём интересе, прочитал что принт не является настоящей функцией, но вела себя как функция (возвращала 1), но работает и как конструктор поэтому всё таки правильней её будет называть функция-конструкт ну или как-то так :)
Спустя 18 минут, 8 секунд (7.02.2011 - 22:42) inpost написал(а):
А какой смысл этой темы? ))
Спустя 12 минут, 31 секунда (7.02.2011 - 22:54) Arni написал(а):
Цитата |
А какой смысл этой темы? :))) |
Потому что интересно! :blink:
Цитата (Gradus @ 7.02.2011 - 19:23) |
почему здесь print не сработал раньше echo , echo буферезует что ли как-то сначало вывод ? |
На самом деле все просто.
Не функция это echo. И буфер действительно существует.
Им же даже управлять можно.
ob_start(); // Блокируем вывод
$html = ob_get_clean(); // Копируем содержимое буфера в переменную.
$html = str_replase('можем заменить эту строку','На вот такую', $html);
echo $html; //=> Вот такой вот изврат.
Цитата (Gradus @ 7.02.2011 - 19:23) |
и почему здесь print не сработал раньше echo , |
Да потому что интерпретатор сначала обработал первый параметр который передали в echo.
Если поменять местами ...
echo print('2'), ' <==> ' ,'3' + '0.5';
То выведет:
Цитата |
21 <==> 3.5 |
1. Сначала, интерпретатор начнет обрабатывать первый параметр.
2. Вызов print закинет 2 в буфер.
3. Потом в буфер полетит 1, поскольку в print видимо есть return true;
4. Дальше интерпретатор обработает остальные параметры echo.
Если где не правильно сказал, поправляйте. :) Подискутируем.
Спустя 13 минут, 36 секунд (7.02.2011 - 23:08) Gradus написал(а):
Arni, да это всё понятно я просто описывал логику под словом "не настоящая функция" , которая была не понятна.Поэтому фраза "функция-конструкт" как мне кажется более объективная
Цитата |
А какой смысл этой темы? )) |
я уже отредактировал сообщение и стёр бред который описывал
_____________
ДАВАЙ ДЕНЬГИ
R543264623869