PHP´de sınıflar.

fatihmertFatih Mert Doğancan

Merhaba arkadaşlar PHP de yeni sayılırım. Sınıfların mantığını biliyorum fakat sanırım kafam karıştı. Şimdi elimde yazmış olduğum çalışma amaçlı bir sınıfım var.


class matematik { public $s1=1,$s2=2,$sonuc; function topla($s1,$s2) { $this->sonuc = $this->s1 + $this->s2; return $this->sonuc; } } $mat = new matematik; echo $mat->topla(1,1);

public kısmında $s1 ve $s2 değişkenlerine değer atadığımda, sınıf dışında echo $mat->topla(1,1); yaptığımda sonucu 3 olarak ekrana basıyor fakat, işte burda size 2 tane sorum çıkıyor. birincisi ben $s1 ve $s2 ye zaten defaul değer atıyorum, yani echo $mat->topla(); yazdığımda 3 sonucu almam gerekiyor aksi takdirde echo $mat->topla(1,1); 1,1 veya 56,77 yaptığımda değişkenlerin default modunda çıkması gerekmiyor mu?

ikincisi ise yine yukardaki aynı kodum, $s1 ve $s2 değişkenlerine default değer atamadan yaptım, yani şu şekilde;


class matematik { public $s1,$s2,$sonuc; function topla($s1,$s2) { $this->sonuc = $this->s1 + $this->s2; return $this->sonuc; } } $mat = new matematik; echo $mat->topla(1,1);

bu durumda ekrana 2 basması gerekirken 0 yazıyor, bu işlemi mantıksal olarak alıyor fakat ben topla fonksiyonumda değişkenleri doldurarak bool değerimi zaten true yapıyorum. Kafam gerçekten bi milyon oldu, çözemedim =(

Okuyup ilgilendiğiniz için teşekkür ederim...

2012-01-10 19:42:38 Edit:2012-01-10 19:43:42

Php

Yazım yanlışı yapmışsın.

1. default değer atadığında artık fonksiyona sayı girmen gerekmez. fonksiyon şöyle olabilir.

function topla($s1=1 , $s2=1)
{
    $sonuc = $s1 + $s2;
    return $sonuc;
}

Tabii sen o kısımda, This parametresi ile iş yapacam diyorsan şöyle olması daha mantıklı.

function topla($s1,$s2)  // buradaki s1 ve s2 class`a ait değildir, fonksiyona aittir
{
    $this->s1 = $s1;  // önce içindeki sayıyı değişmen lazım
    $this->s2 = $s2;

    $this->sonuc = $this->s1 + $this->s2;
    return $this->sonuc;
}

Her programcı birgün Php yi tadacaktır
2012-01-11 10:22:16

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro