powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP ob_start объясните пример
8 сообщений из 8, страница 1 из 1
PHP ob_start объясните пример
    #38557378
Уася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?php
function callback($buffer) {
return (ereg_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.
</body>
</html>
<?php
ob_end_flush();
?>


принцип работы данного кода мне понятен, но я никак не могу понять вот что:
У нас есть функция с одным входным параметров под названием callback()
чтобы в функцию задать параметр нужно писать типо callback ('параметр первый');
а здесь я вообще не понимаю каким образом мы вызвали функцию без параметра!!???
ob_start("callback"); получил в качестве параметра функцию, но где видно, что сама функция получила параметр?
...
Рейтинг: 0 / 0
PHP ob_start объясните пример
    #38557440
Дринкинс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не совсем фкурил вопрос, но в пыхе можно делать вот так:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
function myFunc($param1, $param2) {
   echo 'Result: '.($param1+$param2);
   }

$test = 'myFunc';

$test(1, 2);

// *** Выдаст Result: 3
...
Рейтинг: 0 / 0
PHP ob_start объясните пример
    #38557471
Уася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дринкинс,
все понятно, в моем примере вот так:
Код: php
1.
ob_start("callback");


в ob_start вызывается функция callback без скобок ()
не пойму как все заработало?
...
Рейтинг: 0 / 0
PHP ob_start объясните пример
    #38557538
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор output_callback

An optional output_callback function may be specified. This function takes a string as a parameter and should return a string. The function will be called when the output buffer is flushed (sent) or cleaned (with ob_flush(), ob_clean() or similar function) or when the output buffer is flushed to the browser at the end of the request. When output_callback is called, it will receive the contents of the output buffer as its parameter and is expected to return a new output buffer as a result, which will be sent to the browser. If the output_callback is not a callable function, this function will return FALSE. This is the callback signature:
...
Рейтинг: 0 / 0
PHP ob_start объясните пример
    #38557643
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дринкинс,

и даже вот так будет работать:
Код: php
1.
2.
3.
function myFunc123($par1, $par2) { return $par1 + $par2; }

$res = myFunc123(1, 2, 5 );
...
Рейтинг: 0 / 0
PHP ob_start объясните пример
    #38557839
seejil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уася,

При вызове ob_start c с параметром, функция принимает содержимое буфера вывода как параметр и возвращает новое содержимое, которое и отправляется в браузер. Если параметр не является вызываемой функцией, то эта функция вернет FALSE.
...
Рейтинг: 0 / 0
PHP ob_start объясните пример
    #38559219
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уася,

Так... чувствую надо объяснить что сказал Дринкинс (ведь он ответил, а Вы походу не поняли).

В ob_start Вы передаёте не функцию, а строку(!!!) в которой содержится название той самой callback функции. А в самом ob_start эта callback функция будет вызвана с переданным в неё параметром (конструкция аля $callback($content))

если не ошибаюсь, можно было передавать не строку с названием, а хэндл самой функции, то есть типа
Код: php
1.
ob_start(callback)



Понимаете почему без скобок? Поставь мы скобки, мы бы сказали серверу, что хотим выполнить функцию callback и использовать её результат как параметр ob_start. Однако реально мы хотим совсем другого... Мы хотим передать в функцию ob_start некий указатель на функцию callback, что бы первая в итоге могла из себя вызвать вторую (то есть получив контент, она вызывает нашу подставленную callback функцию).
...
Рейтинг: 0 / 0
PHP ob_start объясните пример
    #38559829
Уася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Програмёр,
спасибо большое, теперь все стало ясно
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP ob_start объясните пример
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]