За последние 24 часа нас посетили 22558 программистов и 1145 роботов. Сейчас ищут 680 программистов ...

Функции и Echo

Тема в разделе "Прочие вопросы по PHP", создана пользователем denis01, 10 май 2015.

  1. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. function test() { echo "call test"; };
    2. echo "<p>".test()."</p>"; 
    Результат:
    Код (PHP):
    1. call test<p></p> 
    Выходит по документации https://php.net/manual/ru/function.echo.php это и есть "echo не всегда может быть использована в контексте функции"?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    не в контексте функции значит что это конструкция. echo 1,2,3 - даст тот же результат что и echo 1 . 2 . 3 только без лишней конкатенации строк в памяти. тупо в стдаут. в твоем примере всё корректно. ты хочешь напечатать результат конкатенации тега + результата выполнения функции + тега. вызывается функция. она печатает сама в стдаут. и ничего не возвращает вызывающему алгоритму. значит между двумя тегами помещается пустая строка. и результат конкатенации в свою очередь лезет в аут. а в ауте он соответственно идет после того как туда попал эхо при вызове функции тест.
    попробуй точки заменить на запятые и получишь более ожидаемый результат. да, функция тест так ничего и не вернет, но на место пустой строки будет записана "кол тест" из функции и этот текст получится между тегов.
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Благодарю, теперь лучше понял поведение Echo