PHP.mk документација

echo

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.echo.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.echo.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
echo

Референца за `function.echo.php` со подобрена типографија и навигација.

function.echo.php

echo

(PHP 4, PHP 5, PHP 7, PHP 8)

echoИзлезте еден или повеќе низи

= NULL

echo(string ...$expressions): void

Излегува еден или повеќе изрази, без дополнителни нови редови или празни места.

echo не е функција, туку јазичен конструкт. Неговите аргументи се список од изрази што следат по echo клучниот збор, разделени со запирки, а не ограничени со загради. За разлика од некои други јазични конструкции, echo нема вратена вредност, така што не може да се користи во контекст на израз.

echo исто така има кратенка за синтакса, каде што можете веднаш да го следите отворачкиот таг со знак еднакво. Оваа синтакса е достапна дури и со short_open_tag конфигурациската поставка оневозможена.

I have <?=$foo?> foo.

Главните разлики со print се дека echo прифаќа повеќе аргументи и нема вратена вредност.

Параметри

expressions

Еден или повеќе изрази на низи за излез, разделени со запирки. Вредностите што не се низи ќе бидат претворени во низи, дури и кога the strict_types directive е овозможено.

Вратени вредности

Не се враќа вредност.

Примери

Пример #1 echo examples

<?php
echo "echo does not require parentheses.";

// Strings can either be passed individually as multiple arguments or
// concatenated together and passed as a single argument
echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', "\n";
echo
'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";

// No newline or space is added; the below outputs "helloworld" all on one line
echo "hello";
echo
"world";

// Same as above
echo "hello", "world";

echo
"This string spans
multiple lines. The newlines will be
output as well"
;

echo
"This string spans\nmultiple lines. The newlines will be\noutput as well.";

// The argument can be any expression which produces a string
$foo = "example";
echo
"foo is $foo"; // foo is example

$fruits = ["lemon", "orange", "banana"];
echo
implode(" and ", $fruits); // lemon and orange and banana

// Non-string expressions are coerced to string, even if declare(strict_types=1) is used
echo 6 * 7; // 42

// However, the following examples will work:
($some_var) ? print 'true' : print 'false'; // print is also a construct, but
// it is a valid expression, returning 1,
// so it may be used in this context.

echo $some_var ? 'true': 'false'; // evaluating the expression first and passing it to echo
?>

Пример #2 echo не е израз

<?php
// Because echo does not behave as an expression, the following code is invalid.
($some_var) ? echo 'true' : echo 'false';
?>

Белешки

Забелешка: За автоматско вклучување на датотеки во скрипти, видете исто така Бидејќи ова е конструкција на јазикот, а не функција, не може да се повика користејќи, или именувани аргументи.

Забелешка: Користење со загради

Опкружувањето на еден аргумент на echo со загради нема да предизвика грешка во синтаксата и произведува синтакса што изгледа како нормален повик на функција. Сепак, ова може да биде погрешно, бидејќи заградите се всушност дел од изразот што се излегува, а не дел од echo самата синтакса.

Пример #3 Користење загради

<?php
echo "hello", PHP_EOL;
// outputs "hello"

echo("hello"), PHP_EOL;
// also outputs "hello", because ("hello") is a valid expression

echo(1 + 2) * 3, PHP_EOL;
// outputs "9"; the parentheses cause 1+2 to be evaluated first, then 3*3
// the echo statement sees the whole expression as one argument

echo "hello", " world", PHP_EOL;
// outputs "hello world"

echo("hello"), (" world"), PHP_EOL;
// outputs "hello world"; the parentheses are part of each expression
?>

Пример #4 Невалиден израз

<?php
echo("hello", " world"), PHP_EOL;
// Throws a Parse Error because ("hello", " world") is not a valid expression
?>
Совети

Проследување на повеќе аргументи на echo може да избегне компликации што произлегуваат од приоритетот на операторот за спојување во PHP. На пример, операторот за спојување има поголем приоритет од тернарниот оператор, а пред PHP 8.0.0 имаше ист приоритет како собирање и одземање:

<?php
// Below, the expression 'Hello ' . isset($name) is evaluated first,
// and is always true, so the argument to echo is always $name
echo 'Hello ' . isset($name) ? $name : 'John Doe' . '!';

// The intended behaviour requires additional parentheses
echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';

// In PHP prior to 8.0.0, the below outputs "2", rather than "Sum: 3"
echo 'Sum: ' . 1 + 2;

// Again, adding parentheses ensures the intended order of evaluation
echo 'Sum: ' . (1 + 2);

If multiple arguments are passed in, then parentheses will not be required to enforce precedence, because each expression is separate:

<?php
echo "Hello ", isset($name) ? $name : "John Doe", "!";

echo
"Sum: ", 1 + 2;

Види Исто така

Белешки од корисници 1 белешка

Начини за специфицирање на буквални стрингови
пред 8 години
Passing multiple parameters to echo using commas (',')is not exactly identical to using the concatenation operator ('.'). There are two notable differences.

First, concatenation operators have much higher precedence. Referring to http://php.net/operators.precedence, there are many operators with lower precedence than concatenation, so it is a good idea to use the multi-argument form instead of passing concatenated strings.

<?php
echo "The sum is " . 1 | 2; // output: "2". Parentheses needed.
echo "The sum is ", 1 | 2; // output: "The sum is 3". Fine.
?>

Second, a slightly confusing phenomenon is that unlike passing arguments to functions, the values are evaluated one by one.

<?php
function f($arg){
  var_dump($arg);
  return $arg;
}
echo "Foo" . f("bar") . "Foo";
echo "\n\n";
echo "Foo", f("bar"), "Foo";
?>

The output would be:
string(3) "bar"FoobarFoo

Foostring(3) "bar"
barFoo

It would become a confusing bug for a script that uses blocking functions like sleep() as parameters:

<?php
while(true){
  echo "Loop start!\n", sleep(1);
}
?>

vs

<?php
while(true){
  echo "Loop started!\n" . sleep(1);
}
?>

With ',' the cursor stops at the beginning every newline, while with '.' the cursor stops after the 0 in the beginning every line (because sleep() returns 0).
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.