İçeriğe geç

Menü

Berk Akademi
Birebir ders başvurusu Ücretsiz ön görüşme Ana Sayfa

PHP Fonksiyonlarında return ve echo Farkı Nedir?

php-return-echo-farki
Bu yazıda neler var?
  1. echo ve return arasındaki temel fark nedir?
  2. Parametre, fonksiyon çağrısı ve değişkene atama nasıl çalışır?
  3. Aynı işi echo ve return ile yapan kısa PHP örnekleri
  4. return edilen değer başka işlemlerde nasıl kullanılır?
  5. echo ve return yanlış kullanıldığında nasıl hata ayıklanır?
  6. Hangi durumda echo, hangi durumda return seçilmeli?
  7. Sık Sorulan Sorular

PHP fonksiyonlarında return ve echo farkı, değerin nasıl kullanılacağıyla ilgilidir. echo bir değeri o anda ekrana gönderir. return ise fonksiyonun ürettiği sonucu çağıran koda geri verir ve bu sonuç daha sonra bir değişkende saklanabilir veya başka bir işlemde kullanılabilir.

echo ekrana çıktı gönderir, return ise fonksiyon sonucunu çağıran koda geri verir. Bu nedenle yalnızca kullanıcıya bilgi göstermek istediğinde echo, hesaplanan sonucu programın başka bir bölümüne aktarmak istediğinde ise return daha uygun olur.

echo ve return arasındaki temel fark nedir?

echo, fonksiyon çalıştığı sırada değeri doğrudan çıktıya gönderir. Fonksiyonun ürettiği sonucu daha sonra kullanmak için ayrıca bir değer saklamaz. Bu yaklaşım, bir mesajı veya sonucu o anda ekrana yazdırmak için pratiktir.

return ise fonksiyonun çalışmasını sonlandırarak bir değeri çağrıldığı yere gönderir. Dönen değer henüz ekrana yazdırılmış olmaz. Bu değeri ekranda göstermek için sonradan echo kullanılabilir.

<?php
function ekranaYaz($sayi) {
    echo $sayi * 2;
}

function ikiKatiniDondur($sayi) {
    return $sayi * 2;
}

echo "echo sonucu: ";
ekranaYaz(4);

echo "<br>";

$sonuc = ikiKatiniDondur(4);
echo "return sonucu: " . $sonuc;
?>

Bu kod tarayıcıda şu çıktıyı oluşturur:

echo sonucu: 8
return sonucu: 8

İki fonksiyon da aynı hesabı yapar. İlk fonksiyon sonucu kendi içinde ekrana gönderir. İkinci fonksiyon ise 8 değerini dışarı aktarır. Bu değer daha sonra $sonuc değişkenine atanarak ekrana yazdırılmıştır.

Parametre, fonksiyon çağrısı ve değişkene atama nasıl çalışır?

Parametre, fonksiyon çağrısı ve değişkene atama nasıl çalışır?

Fonksiyon tanımında parantez içinde yazılan değişken, fonksiyona dışarıdan veri taşır. Örnekteki $sayi bir parametredir. Fonksiyon çağrılırken verilen 4 değeri bu parametreye aktarılır.

  1. Parametre: function ikiKatiniDondur($sayi) satırındaki $sayi, fonksiyonun kullanacağı veriyi temsil eder.
  2. Fonksiyon çağrısı: ikiKatiniDondur(4) ifadesi, fonksiyonu çalıştırır ve 4 değerini parametreye gönderir.
  3. Dönüş değeri: Fonksiyon içindeki return $sayi * 2; satırı, hesaplanan 8 değerini çağıran koda geri verir.
  4. Değişkene atama: $sonuc = ikiKatiniDondur(4); satırı, dönen 8 değerini $sonuc içinde saklar.

echo kullanılan fonksiyonda ise değer doğrudan çıktıya gider. return kullanılan fonksiyonda sonuç ekrana otomatik olarak yazılmaz. Örneğin ikiKatiniDondur(4); çağrısı sonucu hesaplar, fakat değer bir değişkene atanmaz veya echo ile yazdırılmazsa kullanıcı bu sonucu göremez.

Aynı işi echo ve return ile yapan kısa PHP örnekleri

echo, fonksiyonun ürettiği metni doğrudan ekrana gönderir. Fonksiyonu çağıran satır, ayrıca kullanılabilecek bir değer almaz.

<?php
function selamlaEcho($isim) {
    echo "Merhaba, " . $isim . "!";
}

selamlaEcho("Deniz");

Beklenen çıktı: Merhaba, Deniz!

Aynı selamlama işlemi return ile yapıldığında fonksiyon metni ekrana yazdırmaz. Metni çağıran koda teslim eder. Ekrana yazdırma işini dışarıdaki echo üstlenir.

<?php
function selamlaReturn($isim) {
    return "Merhaba, " . $isim . "!";
}

echo selamlaReturn("Deniz");

Beklenen çıktı: Merhaba, Deniz!

İki kod ekranda benzer sonuç üretir. Ancak ilkinde işlem doğrudan görüntü oluşturur, ikincisinde ise metin önce bir değer olarak döner. Bu değer daha sonra değişkende tutulabilir, başka bir fonksiyona gönderilebilir veya farklı bir işlemde kullanılabilir.

return edilen değer başka işlemlerde nasıl kullanılır?

return edilen değer başka işlemlerde nasıl kullanılır?

return ile dönen sonuç, fonksiyon çağrısının yerine geçer. Bu nedenle sonucu bir değişkene atayabilir, matematiksel işlemde kullanabilir, başka bir fonksiyona gönderebilir veya metinle birleştirebilirsin.

<?php
function topla($a, $b) {
    return $a + $b;
}

function ikiKatiniAl($sayi) {
    return $sayi * 2;
}

function metneEkle($deger) {
    return "Sonuç: " . $deger;
}

$toplam = topla(4, 3);
$hesap = ikiKatiniAl($toplam);

echo metneEkle($hesap);

Beklenen çıktı: Sonuç: 14

Burada topla() fonksiyonunun sonucu $toplam değişkeninde tutulur. Bu değer ikiKatiniAl() fonksiyonuna gönderilir, ardından oluşan sayı metinle birleştirilerek ekrana yazdırılır. echo ile üretilen görüntü ise çağıran koda aynı biçimde bir değer olarak aktarılmaz.

return, koşula göre farklı sonuçlar döndürmek için de kullanılabilir:

<?php
function sinavDurumu($puan) {
    if ($puan >= 50) {
        return "Geçti";
    } else {
        return "Geliştirilmeli";
    }
}

$sonuc = sinavDurumu(72);
echo $sonuc;

Beklenen çıktı: Geçti

Fonksiyon, puan 50 veya üzerindeyse "Geçti", daha düşükse "Geliştirilmeli" değerini döndürür. Çağıran kod ise yalnızca $sonuc değişkeniyle çalışır ve kararın içeride nasıl verildiğini bilmek zorunda kalmaz.

echo ve return yanlış kullanıldığında nasıl hata ayıklanır?

echo değeri o anda ekrana gönderir, return ise değeri fonksiyonu çağıran koda taşır. Bu ayrım karıştığında boş ekran, beklenmeyen çıktı sırası veya değişkende kullanılabilir sonuç bulunmaması görülebilir.

  1. Fonksiyon çağrılıyor mu? Fonksiyon tanımını yazmak tek başına onu çalıştırmaz. Fonksiyonun gerçekten çağrıldığını kontrol et.
  2. Parametre doğru aktarılıyor mu? Parametrelerin sırasını, gönderilen değişkenleri ve bu değişkenlerin değerlerini incele.
  3. echo doğru yerde mi? Fonksiyon içindeki echo, fonksiyon çağrıldığı anda çalışır. Bu nedenle dışarıdaki başka çıktılarla sırası karışabilir.
  4. return çağıran koda ulaşıyor mu? Koşul bloğu, erken bir return veya başka bir hata nedeniyle beklenen satıra gelinip gelinmediğini kontrol et.
  5. Sonuç değişkene atanmış mı? Dönen değeri kullanmak için $sonuc = fonksiyon(); gibi bir atama yapılmalıdır.
  6. Tüm koşul dalları değer döndürüyor mu? Yalnızca bir koşulda return varsa diğer dalda beklenen sonuç yerine NULL oluşabilir.
<?php
function durum($puan) {
    if ($puan >= 50) {
        return "Geçti";
    }

    return "Kaldı";
}

$sonuc = durum(45);
echo $sonuc;
?>

Beklenen çıktı Kaldı olur. Fonksiyonun içinde yalnızca return kullanılsaydı değer çağıran koda gider, fakat ayrıca yazdırılmadığı için ekranda görünmezdi.

Hata ayıklarken çağrının gerçekleştiğini görmek için geçici olarak echo "Çağrı yapıldı"; ekleyebilirsin. Bu yalnızca akışın ilgili noktaya geldiğini gösterir. Dönen sonucun türünü ve değerini incelemek için var_dump($sonuc); kullanmak daha uygundur. Böylece ekrana yazdırılan metin ile fonksiyonun ürettiği sonucu birbirinden ayırabilirsin.

Hangi durumda echo, hangi durumda return seçilmeli?

Seçimi, değerin kime ve ne zaman lazım olduğuna göre yapabilirsin. Kullanıcıya doğrudan bir mesaj göstermek için echo, değeri saklamak, hesaplamaya katmak veya başka bir kod bloğunda kullanmak için return daha uygundur.

İhtiyaç Tercih edilecek yapı Gerekçe Kısa örnek kullanım
Kullanıcıya tek seferlik çıktı vermek echo Değeri fonksiyon çağrıldığı anda gösterir. echo "İşlem tamamlandı";
Değeri saklamak veya yeniden kullanmak return Çağıran kod sonucu değişkene alabilir ve başka işlemlerde kullanabilir. $toplam = hesapla();
Koşula göre farklı sonuç üretmek return Fonksiyon sonucu üretir, yazdırma kararını çağıran kod verir. $mesaj = durum($puan);

Bu ayrımı pekiştirmek için PHP ve programlama konularındaki diğer yazıları da inceleyebilirsin.

  • Yalnızca o anda metin göstereceksen echo kullan.
  • Değeri saklayacak, hesaplayacak veya başka bir fonksiyona göndereceksen return kullan.
  • Koşullu sonuçlarda her dalı beklenen bir değer döndürecek şekilde tamamla.

Sık Sorulan Sorular

PHP'de return kullanınca değer otomatik olarak ekrana yazdırılır mı?

Hayır. return değeri çağıran koda gönderir ve fonksiyondan çıkış yapar. Ekranda görmek için dönen sonucu ayrıca echo ile yazdırman veya başka bir şekilde kullanman gerekir.

Echo ile yazdırılan değer neden değişkene atanıp başka bir işlemde kullanılamaz?

echo değeri doğrudan çıktıya gönderir, çağıran koda işlenebilir bir sonuç bırakmaz. Bu nedenle $sonuc = echo ...; geçerli bir atama biçimi değildir. Yeniden kullanım gereken durumda fonksiyonun return ile değer döndürmesi gerekir.

Aynı PHP fonksiyonunda hem echo hem return kullanılabilir mi?

Evet. Fonksiyon önce echo ile bir metin gösterebilir, ardından return ile değer gönderebilir. Ancak return çalıştığı anda fonksiyon sona erer ve sonraki kodlar çalışmaz.

Özetle, echo çıktıyı üretir, return sonucu taşır. İhtiyacın ekrana anlık bilgi vermek mi yoksa kullanılabilir bir değer üretmek mi olduğuna bakarak seçim yapabilirsin.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara