PHP´de sınıflar.
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...
Php
Yazım yanlışı yapmışsın.
1. default değer atadığında artık fonksiyona sayı girmen gerekmez. fonksiyon şöyle olabilir.
{
$sonuc = $s1 + $s2;
return $sonuc;
}
Tabii sen o kısımda, This parametresi ile iş yapacam diyorsan şöyle olması daha mantıklı.
{
$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;
}