Menu

PHP echo: Metin, Değişken ve HTML Yazdırma

echo bir veya daha fazla string yazdırır: echo "Hello, $name"; ya da echo $a, $b;. Sayfaya metin veya HTML göndermenin olağan yoludur. print aynı işi tek bir değerle yapar ve 1 döndürür; <?= $x ?> ise HTML içindeki kısa yazımdır.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

echo metin yazdırır. Bir string çıktı vermek için echo "Hello";, bir değişkeni eklemek için echo "Hello, $name";, birkaç değeri art arda yazdırmak için echo $a, $b; yazın. echo ne yazdırırsa tarayıcının gösterdiği sayfa ya da terminalde gördüğünüz metin o olur.

İlk satır interpolasyon kullanır (değişken çift tırnağın içindedir), ikincisi stringleri . operatörüyle birleştirir, üçüncüsü virgülle ayrılmış üç değer geçirir. Üçü de aynı türden sonuç yazdırır.

HTML yazdırmak

Bir web sayfasında echo genellikle HTML yazdırır. Tarayıcı metni alır ve etiketleri görüntüler. Run'a basın, Page sekmesi görüntülenen sonucu gösterir:

Son satır tek tırnak kullanır, böylece class="note" içindeki çift tırnakların kaçırılmasına gerek kalmaz. Tek tırnak içinde değişkenler yerine konmaz; bu yüzden sabit metin için tek tırnak kullanın. Bir değer ziyaretçiden geliyorsa (bir form, URL), HTML enjekte edemesin diye onu htmlspecialchars ile yazdırın; htmlspecialchars sayfasına bakın.

Kısa echo etiketi <?=

Bir HTML dosyasının içinde <?= $value ?>, <?php echo $value; ?> ifadesinin kısa yazımıdır. Şablonları okunur tutar:

Kısa echo etiketi her zaman kullanılabilir. Diğer kısa etiket, yani php olmadan yazılan <?, bir ayara bağlıdır ve kullanılmamalıdır.

Birden çok değer ve yeni satır yazdırmak

echo satır sonu eklemez. Terminalde "\n" (çift tırnak içinde) ya da PHP_EOL sabitini ekleyin. HTML'de kaynak koddaki satır sonu görünür bir şey yapmaz; <br> ya da ayrı elemanlar kullanın.

Virgüller ve noktalar aynı çıktıyı verir. Virgülle echo her değeri sırayla yazdırır; noktayla PHP önce tek bir string oluşturur, sonra onu yazdırır. Satır sonlarının kendi sayfası var: PHP'de yeni satır.

echo ile print

print daha eski kardeştir. Tek bir değer yazdırır ve her zaman 1 döndürür; bu da bir ifadenin içinde yer almasını sağlar. echo istediğiniz sayıda değer alır ve hiçbir şey döndürmez.

echoprint
Değerlerbir veya daha fazla, virgülle ayrılmıştam olarak bir
Döndürdüğühiçbir şey (bir ifade cümlesidir)1
Bir ifadede kullanımhayırevet, $ok = print "x";
Yaygın kullanımneredeyse her şeynadiren

printf ise yine farklıdır: değerleri printf("%05.2f", 3.14159) gibi yer tutucularla biçimlendirir ve sprintf sayfasında anlatılır.

Bir diziyi veya nesneyi yazdırmak

echo yalnızca stringleri ve stringe dönüşebilen değerleri (sayılar, boolean'lar, null) yazdırır. Bir dizi dönüşmez. Kendi PHP'niz bir uyarı ve Array kelimesini yazdırır:

PHP Warning:  Array to string conversion in /home/index.php on line 3
Array

İçeriği göstermek için işe uygun fonksiyonu seçin:

Nesneler daha katıdır: sınıfı __toString() tanımlamıyorsa echo $object; betiği Error: Object of class User could not be converted to string hatasıyla durdurur. Boolean'lar da sık bir sürprizdir: echo true; 1 yazdırır, echo false; ise hiçbir şey yazdırmaz. Tam türü ve değeri görmeniz gerektiğinde var_dump($value) kullanın.

Sık yapılan hata: parantez ve virgülle echo

echo bir fonksiyona benzediği için insanlar echo("a", "b"); yazar. Bu bir ayrıştırma hatasıdır, çünkü parantezler tek bir ifadeyi sarar:

PHP Parse error:  syntax error, unexpected token "," in /home/index.php on line 2

Parantezleri kaldırın (echo "a", "b";) ya da değerleri birleştirin (echo("a" . "b");). Aynısı, parantezli ya da parantezsiz hiçbir zaman ikinci bir değer kabul etmeyen print için de geçerlidir.

Sıkça Sorulan Sorular

PHP'de echo ile print arasındaki fark nedir?

İkisi de string çıktı verir. echo virgülle ayrılmış birden fazla değer alır (echo $a, $b;) ve hiçbir şey döndürmez; print tam olarak bir değer alır ve 1 döndürür, bu yüzden bir ifadenin içinde kullanılabilir. Pratikte neredeyse her yerde echo kullanılır.

echo ile parantez kullanmam gerekir mi?

Hayır. echo bir fonksiyon değil, bir dil yapısıdır; bu yüzden olağan yazım echo "Hi"; şeklindedir. echo("Hi"); çalışır, çünkü parantezler yalnızca tek bir ifadeyi gruplar; ama echo("a", "b"); bir ayrıştırma hatasıdır.

echo false neden hiçbir şey yazdırmıyor?

echo değerini stringe çevirir; false boş string "" olur, true ise "1" olur. Boolean değerin kendisini görmek için var_dump($x); (bool(false) yazdırır) ya da echo var_export($x, true); (false yazdırır) kullanın.

PHP'de <?= ne anlama gelir?

<?= $value ?> kısa echo etiketidir ve <?php echo $value; ?> ile aynıdır. PHP 5.4'ten beri her zaman etkindir ve HTML şablonlarında değer yazdırmanın olağan yoludur.

Coddy programlama dilleri çizimi

Coddy ile kodlamayı öğren

BAŞLA