lostyazilim
tr.link

Php öğreniyorum Soru 1

6 Mesajlar 849 Okunma
acebozum
tr.link

egemenozbeyli egemenozbeyli WM Aracı Kimlik Onayı
  • Üyelik 05.06.2015
  • Yaş/Cinsiyet 39 / E
  • Meslek Finans Uzmanı
  • Konum Kocaeli
  • Ad Soyad E** Ö**
  • Mesajlar 54
  • Beğeniler 0 / 6
  • Ticaret 0, (%0)
Merhaba arkadaşlar,

Ben Php öğrenmeye çalışıyorum da, okuduğum kaynakta bir soru ile karşılaştım ve biraz kafam karıştı.

$isim = "sayi";
$n1 = "1";
$n2 = "2";
${$isim.$n1} = 12;
${$isim.$n2} = 5;
$sayi1%=$sayi2;
echo "$sayi1";
?>

Bana bu kodun neden 2 sonucunu verdiğini anlatmanızı rica ediyorum.

Teşekkürler,
 

 

elektronikssl
webimgo

undertaker undertaker WM Aracı Kullanıcı
  • Üyelik 08.02.2017
  • Yaş/Cinsiyet 36 / E
  • Meslek Fizikçi
  • Konum Ankara
  • Ad Soyad Ö** Ü**
  • Mesajlar 28
  • Beğeniler 3 / 4
  • Ticaret 0, (%0)
yapılan işlem sayı1' in sayı2' ye bölümünden kalanı veriyor çünkü. php de aritmetik işleçler diye aratırsanız detaylı bilgiye ulaşırsınız(http://php.net/manual/tr/language.operators.arithmetic.php). % işareti değişkenlerin bölümünden kalanı verir.

kodu şu şekilde yaparsanız yine aynı sonucu verdiğini görürsünüz;

$isim = "sayi";
$n1 = "1";
$n2 = "2";
${$isim.$n1} = 12;
${$isim.$n2} = 5;
$sonuc = $sayi1 % $sayi2;
echo "$sonuc";
 

 

egemenozbeyli egemenozbeyli WM Aracı Kimlik Onayı
  • Üyelik 05.06.2015
  • Yaş/Cinsiyet 39 / E
  • Meslek Finans Uzmanı
  • Konum Kocaeli
  • Ad Soyad E** Ö**
  • Mesajlar 54
  • Beğeniler 0 / 6
  • Ticaret 0, (%0)
$isim = "sayi"; // bu satırda $isim 'e sayi değerini atıyor.
$n1 = "1"; // bu satırda $n1 'e 1 değerini atıyor.
$n2 = "2"; // bu satırda $ne 'ye 2 değerini atıyor.
${$isim.$n1} = 12; // bu satırı anlayamadım.
Benim anladığım kadarıyla $isim.$n1 demek $isim 'in değeriyle $n1 'in değerini birleştiriyor. nokta işareti phpde birleştirme yapmıyor muydu ?
${$isim.$n2} = 5; // bu satırda yine üsttekiyle aynı anlayamadım.
$sayi1%=$sayi2; // bu satırda mod alıyor bunu biliyorum.
echo "$sayi1"; // burada $sayi1 değerini yazdırıyor.
?>



undertaker satırların yanlarına açıklamaları yazdım. 4. ve 5. satırı anlayamadım, yardımcı olur musun
 

 

HapyMan HapyMan Full Stack Developer Kullanıcı
  • Üyelik 14.05.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek What do you do exactly ?
  • Konum İstanbul Avrupa
  • Ad Soyad T** T**
  • Mesajlar 561
  • Beğeniler 171 / 208
  • Ticaret 0, (%0)
egemenozbeyli hocam eğer yanlış bilmiyorsam; php de değişken birleştirme işlemi ${$degisken1.$degisken2} şeklinde yapılır.

${$degisken1.$degisken2} // satırı $degisken1 değişkeninde bulunan değer ile $degisken1 değişkeninde bulunan verileri birleştirip bunları tek bir değişken haline getiriyor.

açıklamak gerekirse :


$degisken1 = 'hapy';
$degisken2 = 'man';

${$degisken1.$degisken2} = 't.t.';

echo $hapyman;


sonuç çıktısı : t.t. olacaktır.
 

 

wmaraci
wmaraci

creed74 creed74 WM Aracı Kullanıcı
  • Üyelik 30.06.2016
  • Yaş/Cinsiyet 50 / E
  • Meslek Yazılım
  • Konum İstanbul Anadolu
  • Ad Soyad Y** T**
  • Mesajlar 977
  • Beğeniler 33 / 388
  • Ticaret 45, (%100)
$isim = "sayi"; // isim değişkenine sayi kelimesini atıyor.
$n1 = "1"; // n1 değişkenine 1 ifadesini atıyor
$n2 = "2"; // n2 değişkenine 2 ifadesini atıyor
${$isim.$n1} = 12; // isim değişkeni ile n1 değişkenini birleştiriyor ve 12 değerini atıyor yani sayi1 = 12
${$isim.$n2} = 5; // isim değişkeni ile n2 değişkenini birleştiriyor ve 5 değerini atıyor yani sayi2 = 5
$sayi1%=$sayi2; // 12 %= 5 i işletiyor, karşılığı 12 = 12 % 5 dir
echo "$sayi1"; // dolayısıyla sayi1 çıktısı yukarıdaki işleme göre 2 sonucunu verir, çünkü 12 nin 5 e bölümünde kalan 2 dir..
?>
 

 

brkrtp brkrtp Mobile App Developer Kullanıcı
  • Üyelik 24.08.2013
  • Yaş/Cinsiyet 31 / E
  • Meslek Mobile App Developer
  • Konum İstanbul Anadolu
  • Ad Soyad B** K**
  • Mesajlar 964
  • Beğeniler 269 / 251
  • Ticaret 31, (%97)
Selamlar çift tırnak içerisinde tanımlanan değişkenler STRİNG olarak tanımlanmış olur.

Yani aşşağıdaki örnekte $sayi1 INT $sayi2 ise STRİNG oluyor.
$sayi1=1;
$sayi2="2";

Siz birleştirme operatörü kullandıgınız için (birleştirme operatörü iki değişkeni stringe dönüştürür.) iki string birleştirilirken ilk değişkenin devamına ekledi.

Bu $isim.$soyisim yazmak gibi bir şey. Sayı oldugu için kafanız karışmış.
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al