lostyazilim
tr.link

if else fonksiyon içinde çalışmadı

8 Mesajlar 1.534 Okunma
lstbozum
tr.link

idea idea WM Aracı Kullanıcı
  • Üyelik 27.04.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad M** S**
  • Mesajlar 448
  • Beğeniler 165 / 44
  • Ticaret 4, (%75)
if ($verilen_yanit == $dogru_cevap) {
echo "D";
} else {
echo "Y";
}


yuarıdaki kod çalışıyor arkadaşlar. ama bu if else yapısını bir fonksiyon şu şekilde eklediğimde ise çalışmıyor:

function cevapladi() {
if ($verilen_yanit == $dogru_cevap) {
echo "D";
} else {
echo "Y";
}
}

$cevap = cevapladi();
//BURADAKİ CEVABI (D veya Y) VERİTABANINA YAZIRMAK İÇİN DEĞİŞKENE ATADIM.



ve şu şekilde hata veriyor:

Notice: Undefined variable: dogru_cevap in C:\Program Files\EasyPHP-12.1\www\asd.php on line 105

Notice: Undefined variable: verilen_yanit in C:\Program Files\EasyPHP-12.1\www\asd.php on line 105
D


105.satır. fonksiyonun içindeki if ($verilen_y... başlayan satırı.

bu sorunu nasıl çözebiliriz? teşekkürler.
 

 

wmaraci
reklam

mizraklar mizraklar Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 30.09.2013
  • Yaş/Cinsiyet 48 / E
  • Meslek Elektronik Müh.
  • Konum Kocaeli
  • Ad Soyad H** M**
  • Mesajlar 290
  • Beğeniler 34 / 35
  • Ticaret 0, (%0)
Merhaba arkadaşlar

değişkenlerin function içinde çalışabilmesi için

global olarak tanımlamanız lazım

örnek


function cevapladi() {
global $verilen_yanit, $dogru_cevap;
if ($verilen_yanit == $dogru_cevap) {
echo "D";
} else {
echo "Y";
}
}


aksi durumda değişken değerleri boş göründüğü için işlem yapmaz hata alırsın
idea

kişi bu mesajı beğendi.

ismailke ismailke WM Aracı Kullanıcı
  • Üyelik 31.05.2013
  • Yaş/Cinsiyet 40 / E
  • Meslek Biyolog
  • Konum Ankara
  • Ad Soyad İ** S**
  • Mesajlar 314
  • Beğeniler 77 / 44
  • Ticaret 10, (%100)
verilen_yanit veya dogru yani diye atadığın değişkenler için herhangi bir veri yok sanırım. kodlarınüst kısmında yanıtlar için bir veri oluştur örneğin;
$verilen_yanit=a;
$dogru_cevap=a;

gibi olabilir.
 

 

idea idea WM Aracı Kullanıcı
  • Üyelik 27.04.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad M** S**
  • Mesajlar 448
  • Beğeniler 165 / 44
  • Ticaret 4, (%75)
@mizraklar

dediğiniz gibi yaptım. hata ekranı giderildi. ancak bu sefer de veritabanına D veya Y şeklinde yazmadı. (Diğer tüm değişkenler ise veritabanına yazıyor. Sadece bunda sorun oldu bu sefer de)

@ismailke

değişkenlerde veri yüklü hocam. o konuda sıkıntı yok.
 

 

wmaraci
wmaraci

0Derece 0Derece WM Aracı Kullanıcı
  • Üyelik 08.12.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Web Developer
  • Konum Ankara
  • Ad Soyad O** U**
  • Mesajlar 355
  • Beğeniler 27 / 104
  • Ticaret 0, (%0)

idea adlı üyeden alıntı

@mizraklar

dediğiniz gibi yaptım. hata ekranı giderildi. ancak bu sefer de veritabanına D veya Y şeklinde yazmadı. (Diğer tüm değişkenler ise veritabanına yazıyor. Sadece bunda sorun oldu bu sefer de)

@ismailke

değişkenlerde veri yüklü hocam. o konuda sıkıntı yok.


Veriyi değişkene atamak için fonksiyonun içinde echo yazan yerleri return oralarak değiştir
idea

kişi bu mesajı beğendi.

idea idea WM Aracı Kullanıcı
  • Üyelik 27.04.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad M** S**
  • Mesajlar 448
  • Beğeniler 165 / 44
  • Ticaret 4, (%75)
@0Derece return olarak değiştirince her şey sorunsuz çalıştı.

teşekkürler arkadaşlar.
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
Global değişkenler dışarıdan çağıracaksanız mantıklıdır da, buradaki durumda, kontrol edeceğiniz değerleri fonksiyona parametre olarak geçmek daha mantıklı yada bu iş için fonksiyon yazmak yerine tek satırdada bitirebilirsin.
fonksiyon için;

function validateValue($actualVar, $expectedVar){
return $actualVar == $expectedVar ? 'D' : 'Y';
}


Fonksiyonu çağırdığınız noktada ;

$result = ($actualVar == $expectedVar) ? 'D' : 'Y';

echo($result);

..
idea soulmy

kişi bu mesajı beğendi.

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

Flawless Flawless Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 25.10.2013
  • Yaş/Cinsiyet 41 / E
  • Meslek Php Coder
  • Konum Antalya
  • Ad Soyad K** I**
  • Mesajlar 476
  • Beğeniler 22 / 87
  • Ticaret 7, (%100)
fonksiyona parametre ekleyin ve değeri return ile döndürün
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al