echo

(PHP 4, PHP 5, PHP 7)

echoBir veya daha fazla dizgeyi çıktılar

Açıklama

void echo ( string $değ1 [, string $... ] )

Tüm değiştirgelerini çıktılar.

echo aslında bir işlev değil bir dil oluşumudur, yani değiştirgelerini yaylı ayraçlar arasına almak gerekmez. echo (diğer dil oluşumlarından farklı olarak) bir işlev gibi davranmaz, bu bakımdan bir işlevin değiştirgesinde kullanılamaz. Ek olarak, echo'ya birden fazla değiştirge aktarmak isterseniz bu değiştirgeleri asla yaylı ayraçlar arasına almamalısınız.

echo ayrıca kısaltılmış bir sözdizimine de sahiptir. Bir açan PHP etiketinin ardına bir eşit işareti koyup dizgeyi ardına yazmanız yeterlidir. Bu kısa kullanım sadece short_open_tag yönergesi etkin kılınmışsa kullanılabilir. Örnek:

I have <?=$foo?> foo.

Değiştirgeler

değ1

Çıktılanacak değiştirge.

...

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Örnek 1 - echo örnekleri

<?php
echo "Hello World";

echo 
"Bu çok satırlı bir
dizge olup satırsonu karakterleri
de çıktılanır."
;

echo 
"Bu çok satırlı bir\ndizge olup satırsonu karakterleri\nde çıktılanır.";

echo 
"Karakterlerin öncelenmesi böyle yapılır: \"Tıpkı böyle\".";

// echo deyiminde değişkenleri de kullanabilirsiniz
$bu "Bu da";

echo 
"$bu Buda"// Bu da Buda

// Ayrıca dizileri de kullanabilirsiniz
$bar = array("değer" => "Buda");

echo 
"Bu da {$bar['değer']} !"//  Bu da Buda !

// Tek tırnak içine alırsanız değişken basılır, değeri değil
echo '$bu Buda'// $bu Buda

// Başka karakter kullanmazsanız sadece değişkenin değeri basılır
print $bu;          // Bu da
echo $foo,$bar;     // Bu daBuda

// Bazıları birleştirerek basılmak üzere çok sayıda değiştirgeyi böyle aktarır
echo 'Bu ''dizge ''çok ''değiştirgelidir.'chr(10);
echo 
'Bu ' 'dizge ' 'çok ' 'değiştirgelidir.' "\n";

echo <<<END
Burada "yorumlu metin" (heredoc) sözdizimi kullanılmış
olup bu dizgenin içindeki her 
$değişken yorumlanır.
Yorumlu metin sonlandırıcısı son satırda yer almalı ve
ardındaki noktalı virgül dışında etrafında hiçbir karakter
(boşluklar dahil) bulunmamalıdır!
END;

// echo bir işlev gibi davranmadığından bu kod geçersizdir.
($some_var) ? echo 'true' : echo 'false';

// Ancak, bu kod çalışır:
($some_var) ? print 'true' : print 'false'// print de bir dil oluşumudur
                                            // fakat bir işlev gibi davranır.
                                            // Dolayısıyla bu bağlamda
                                            // kullanılabilir.
echo $some_var 'true''false'// echo kendi içeriğini yorumlayabilir
?>

Notlar

Bilginize: Bu bir işlev değil, dil oluşumu olduğundan değişken işlevler kullanılarak çağrılamaz.

Ayrıca Bakınız

add a note add a note

User Contributed Notes 3 notes

up
3
Jamie Robinson
8 months ago
The {} syntax is useful for printing non array variables as well, an example to illustrate:

<?php
$foo
= "foobar";
$bar = "barbaz";

//Will produce the error: Undefined variable: $foo_
echo "$foo_$bar";

//Will print the intended string: "foobar_barbaz"
echo "{$foo}_$bar";
?>

Could even be worth getting into the habit of enclosing all variables in {} when writing echo strings, to be on the safe side.
up
1
pemapmodder1970 at gmail dot com
26 days ago
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).
up
-1
214363570 at qq dot com
30 days ago
Dear:
      Is there a offical function like echoln(), such as
  
     function echoln($s=""){
            echo $s."\n";
     }

     $str = "i love php";
     echoln($str);
     echoln($str);
     echoln($str);
     echoln($str);

     not is:
     echo $str."\n";
     echo $str."\n";
     echo $str."\n";
     echo $str."\n";
     echo $str."\n";

     Thank you.

     Best regards.
To Top