Metod, Fonksiyon ve Prosedür Arasındaki Farklar

Merhaba Arkadaşlar,

Haftada 1 veya 2 kez en az 50 kelimelik yazılar yazacağımdan bahsetmiştim. Bu da onlardan birisi diyebilirim çünkü bu bir ders değil havadan sudan bir konu.

Geçen gün otobüste giderken birden bire aklıma metod ve fonksiyon arasında bir fark var mı acaba ? sorusu geldi ve bunun üzerine ufak bir araştırma yaptım ve şu sonuca vardım.

Metod dediğimiz şeylerle fonksiyonlar aslında aynı görevi görüyorlar, isimlerinin farklı olma sebebi ise metodların sınıflar içinde kullanılmasıymış. Yani kısaca bir sınıf içindeki fonksiyonlara metod deniyor. Bunun araştırmasını yaparken bir de Prosedür (Procedure) diye bahsedilen bir şeyler karşılaştım. Bunlar da aslında fonksiyonlar ama farkları şuymuş: “Prosedürler geriye bir değer döndürmezlermiş”.

İsterseniz bunların hepsine birer örnek verelim.

Fonksiyon

function buyukMu($a, $b) {
    return $a > $b;
}

Gördüğünüz gibi normal bir fonksiyon yazdık ve geriye boolean cinsinden bir değer döndürdük.

Metod

class foo {
    private $a;
    public function setValue($a) {
        $this->a = $a;
    }
}

Burada da bir sınıf oluşturduk ve içindeki a değişkenine değer atayan bir Metod yazdık.

Prosedür (Procedure)

function carp(&$a, $b) {
    $a = $a * $b;
}

Burada da bir değişkenin değerini değiştirdik ama geriye herhangi bir değer döndürmedik.

Burada kullandığımız & operatörü referans operatörüdür. Burada carp fonksiyonumuzun birinci parametresine sadece değişkenleri verebiliriz. Buraya parametre olarak verdiğimiz değişkenler de bu fonksiyondan geçtikten sonra değerleri değişmiş olarak karşımıza çıkıyor. Yani şöyle ki a adında bir değişken oluşturduk ve buna 5 değerini atadık diyelim. Bu fonksiyonu şu şekilde çalıştırdığımızda:

carp($a, 8);

Ekrana a değişkenini yazdırmak istediğimiz zaman bize 40 değerini döndürecektir.

Konuyu biraz saptırmış olabilirim ama prosedürleri güzel açıkladığımı düşünüyorum.

Bir blog yazısının daha sonuna geldik. Yanlışlarım varsa lütfen bana bildirin ve düzelteyim. Hepinize iyi çalışmalar.

Yararlandığım kaynaklar:

http://stackoverflow.com/questions/4841605/what-is-a-difference-between-a-method-and-a-function

https://adamcod.es/2013/09/27/function-method-procedure.html

Genel, PHP Mustafa Zahid Efe Yorum Yapılmamış