Имя: Пароль:
IT
Веб-мастеринг
Объясните строку кода на PHP
, ,
0 Помогите
 
23.01.15
10:13
ob_start(); echo 'Вот так все и произошло'; return ob_get_clean();


В чем смысл этого? Не проще написать сразу return 'Вот так все и произошло'; ?
1 eRik
 
23.01.15
10:23
проще, но..
а) код писали индусы
б) просто тупо заюзали шаблон
в) изначально там было еще что-то, что потом удалили, а оптимизировать код было лень/некогда
г) ... да мало ли чего
2 Xapac
 
23.01.15
10:31
(0) нет. эхо это типа вывести а ретур это вернёт строку.

а что вызывает процедура ob_get_clean() одному интерпретатору известно
3 TheVeryHe
 
23.01.15
10:42
ob_start — Включение буферизации вывода
ob_get_clean — Получить содержимое текущего буфера и удалить его
4 Помогите
 
23.01.15
10:52
(2) а! Вот оно что... Спасибо. Буд знать.
5 Помогите
 
23.01.15
10:52
Темку можно закрывать
7 Помогите
 
23.01.15
11:10
(6) Что-то не вижу там функций сжатия.
9 shpioleg
 
23.01.15
11:52
До отправки HTTP заголовка header () нельзя ничего посылать клиенту. Тем более выводить с помощью echo. Поэтому все ,что хочешь вывести на этапе работы php скрипта, буферизируешь и только потом выводишь.
10 Помогите
 
23.01.15
11:52
(8) Откуда бы ни было, смысл от этого не меняется. То что возвратил return можно сжать в обоих случаях.
11 Помогите
 
23.01.15
11:53
(9) return 'Вот так все и произошло'; так же ничего не выводит. Никакой разницы не вижу
12 Rie
 
23.01.15
11:58
(11) Так return и не должен выводить. В отличие от echo.
13 vlandev
 
23.01.15
12:00
(11) Вот так должно быть понятнее:

ob_start();
echo 'Вот так все и произошло';
return ob_get_clean();
14 Помогите
 
23.01.15
12:06
(12) так и echo в данном случае ничего не выводит
15 Помогите
 
23.01.15
12:07
(13) Ничего не изменилось. Только в три строки стало
16 Rie
 
23.01.15
12:09
(14) Правильно. См. (9).
(15) В (0) ты хотел (?) вернуть из функции строку 'Вот так все и произошло'. А в тексте сказано, что возвращать надо не строку, а результат ob_get_clean(). Есть разница?
17 Помогите
 
23.01.15
12:47
(16) Пока разницы не вижу. Результат ob_get_clean() разве не строка 'Вот так все и произошло'?