array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.echo.php', 1 => 'echo', ), 'up' => array ( 0 => 'ref.strings.php', 1 => 'Dizge İşlevleri', ), 'prev' => array ( 0 => 'function.crypt.php', 1 => 'crypt', ), 'next' => array ( 0 => 'function.explode.php', 1 => 'explode', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/strings/functions/echo.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
echo — Bir veya daha fazla dizgeyi çıktılar
Tüm bağımsız değişkenlerini çıktılar.
echo
aslında bir işlev değil bir dil oluşumudur, yani
bağımsız değişkenlerini yaylı ayraçlar arasına almak gerekmez.
Bağımsız değişkenleri, echo
anahtar sözcüğünü izleyen,
virgüllerle ayrılmış ve parantez içine alınmamış ifadelerden oluşur.
Diğer bazı dil oluşumlarının aksine, echo
'nun herhangi
bir dönüş değeri yoktur, bu nedenle bir ifade bağlamında kullanılamaz.
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 sözdizimi short_open_tag yapılandırma yönergesi
iptal edilmiş olsa bile kullanılır. Örnek:
I have <?=$foo?> foo.
print işlevine göre başlıca fark
echo
'nun çok sayıda bağımsız değişken kabul etmesi ve
bir dönüş değerinin olmamasıdır.
ifadeler
Virgüllerle ayrılmış bir veya daha fazla dizge ifadesi.
Dizge olmayan değerler,
strict_types
yönergesi etkin olsa bile
dizgeye zorlanır.
Hiçbir değer dönmez.
Örnek 1 - echo
örnekleri
<?php
echo "echo için parantez gerekmez";
// Dizgeler ya çoklu bağımsız değişkenler olarak tek tek aktarılır
// ya da birbirlerine eklenip tek bir bağımsız değişken olarak aktarılır
echo 'Bu ', 'dizge ', 'çok sayıda', 'bağımsız değişken ', 'ile yapıldı.', "\n";
echo 'Bu ' . 'dizge ' . 'çok sayıda ' . 'bağımsız değişken ' . 'birbirine eklenerek yapıldı.' . "\n";
// Satırsonu karakteri veya boşluk eklemek gerekmez
// bu iki satır tek satırlık "merhabaDünya" çıktılar
echo "merhaba";
echo "Dünya";
// Yukarıdaki ile aynı sonucu verir
echo "merhaba", "Dünya";
echo "Bu dizge
çok satırlıdır. Satırsonu
karakterleri de çıktılanır.";
echo "Bu dizge\nçok satırlıdır. Satırsonu\nkarakterleri de çıktılanır.";
// Bağımsız değişken bir dizge üreten herhangi bir ifade olabilir
$buda = "Buda";
echo "Bu da $buda"; // Bu da Buda
$meyveler = ["limon", "portakal", "muz"];
echo implode(" ve ", $meyveler); // limon ve porakal ve muz
// declare(strict_types=1) kullanılmış olsa bile
// dizge olmayan ifadeler dizgeye zorlanır
echo 6 * 7; // 42
// echo bir ifade gibi davranmadığından bu ifade geçersizdir
($ifade) ? echo 'true' : echo 'false';
// Ama bu örnek çalışır:
($ifade) ? print 'true' : print 'false'; // print de bir dil oluşumudur, ama
// geçerli bir ifadedir, 1 döndürür,
// dolayısıyla bu bağlamda geçerlidir.
// Burada ifade değerlendirildikten sonra echo'ya aktarılmaktadır
echo $some_var ? 'true': 'false';
?>
Bilginize: Bu bir işlev değil, dil oluşumu olduğundan değişken işlevler veya isimli bağımsız değişkenler kullanılarak çağrılamaz.
Bilginize: - Parantezli kullanım
Tek bir bağımsız değişkeni parantezlerle çevrelemek bir sözdizimi hatası oluşturmaz ve normal bir işlev çağrısı gibi görünen sözdizimi üretir. Bununla birlikte, bu yanıltıcı olabilir, çünkü parantezler aslında
echo
sözdiziminin bir parçası değil, bağımsız değişken olarak verilen ifadenin bir parçasıdır.
<?php
echo "hello";
// "hello" basar
echo("hello");
// bu da "hello" basar, çünkü ("hello") geçerli bir ifadedir
echo(1 + 2) * 3;
// "9" basar; parantezler 1+2'nin önce değerlendirilip sonra 3 ile
// çarpılmasını sağlar. İfade değerlendirildikten sonra echo'ya
// aktarıldığından echo ifadenin tümünü tek bir bağımsız değişken olarak görür.
echo "hello", " world";
// "hello world" basar
echo("hello"), (" world");
// "hello world" basar; Parantezler ifadenin parçasıdır
echo("hello", " world");
// Bir çözümleme hatası oluşur, çünkü ("hello", " world") geçersiz bir ifadedir
?>
echo
'ya birden çok bağımsız değişken aktarmak, PHP'deki
bitiştirme işlecinin önceliğinden kaynaklanan karışıklıkları önleyebilir.
Örneğin, birleştirme işleci üçlü işleçten daha yüksek önceliğe sahiptir ve
PHP 8.0.0'dan önce toplama ve çıkarma ile aynı önceliğe sahipti:
<?php
// Önce 'Hello ' . isset($name) ifadesi değerlendirilir,
// sonuç daima true olur, bu bakımdan sadece $name basılır
echo 'Hello ' . isset($name) ? $name : 'John Doe' . '!';
// Amaçlanan davranış daha fazla parantez gerektirir
echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';
// PHP 8.0.0 öncesinde, "Sum: 3" yerine "2" basılırdı
echo 'Sum: ' . 1 + 2;
// Bu kez de parentez eklenerek amaçlanan davranış elde edilebilir
echo 'Sum: ' . (1 + 2);
Çok sayıda bağımsız değişken aktarılırsa önceliği devreye sokmak için parantezler gerekmez, çünkü her ifade ayrı değerlendirilir:I
<?php
echo "Hello ", isset($name) ? $name : "John Doe", "!";
echo "Sum: ", 1 + 2;