[PHP] - Olmuyan Değişkeni Fonksiyonda Kullanmak
-
merhaba müritler
aşağıdakı kodla array ıcınde isteidigim veri varmı kontrol ediyorum
function _sqlKontrol($value,$mesaj) { if(!isset($value)){ $cvp['OK']=$mesaj; }else { $cvp['Hata']=$value; } }kullanımım
_sqlKontrol($veri['Hata'],"Veri Kaydedildi")
bu kodda hata varken sıkıntı yok
ama $veri['Hata'] değişkeni tanımlı deigilse hata veriyor.bu sorunu nasıl cözebılırım
-
daha öncesinden bi in_array("Hata", $veri) diyerek bir kontrol etmeyi dener misin?
-
function control($value = null, $mesaj = null){
}
bu "= null" kısmı şey demek "bir değer verilmezse değeri bu olsun". yani yukardaki gibi olunca fonksiyonun biri fonksiyonunu tek bir parametre ile çağırırsa . şöyle : control("aaa"), $value degiskeni aaa olacak, mesaji degiskeni null olacak. ya da adamin control(null, mesaj) seklinde cagirmasi lazim falan. burdan yurursun zaten sen
-
onun yerıne asagıdakı gıbı kullandım hocam gozumden kacmıs konu acınca farkettım
$cvp=_sqlKontrol($sql,"Veri Kaydedildi."); function _sqlKontrol($value,$mesaj) { if(isset($value['Hata'])){ $cvp['Hata']=$value['Hata']; }else{ $cvp['OK']=$mesaj; } return $cvp; }burda sıkıntım aslında return ile cvp geri gondermemden kaynaklanıyomus gıbı geldı bana
amacım o fonksiyonda oluşan değişkeni fonksiyon dısında kullanmaya calısmaktı ama bu sekılde olmuyormus :D
cevabın ıcın tesekkurler.
-
yolbulucu bunu yazdı
function control($value = null, $mesaj = null){
}
bu "= null" kısmı şey demek "bir değer verilmezse değeri bu olsun". yani yukardaki gibi olunca fonksiyonun biri fonksiyonunu tek bir parametre ile çağırırsa . şöyle : control("aaa"), $value degiskeni aaa olacak, mesaji degiskeni null olacak. ya da adamin control(null, mesaj) seklinde cagirmasi lazim falan. burdan yurursun zaten sen
hocam sıkıntı fonksıyonda degıldı
$cvp=_sqlKontrol($sql,"Veri Kaydedildi."); ben burda$cvp degıskenıne fonksıyonun cevabını atadaım ilk kodumda bunu atamadan
direk fonksıyonu cagırıp fonksıyon ıcınde olusturdugum degıskenı fonksıyon dısında kullanamaya calıstım
problemım buydu galıba
-
Çözdün mü çözmedin mi anlamadım ancak
bir sql işlemi yapılıyor olsun. bu sql işlemi saçma sapan kodlanmış olsun ve eğer hata varsa $sql["hata"] tanımlı olsun ve hata yoksa $sql["ok"] tanımlı olsun.
Buradan istediğin gibi var mı yokmu kontrol fonkisyonu oluşturacak olsak;
herIhtimaleKarsiSonucBastirFonksiyonu($sql){
$result = "boş";
$result = @$sql["hata"];
$result = @$sql["ok"];
return $result;
}
ile aşabilirsin. Eğer hata tanımlanmamışsa @ işareti ile hata görmezden gelinecek; oka bakılacak. Ok cevap olacak
Eğer hata varsa ve ok yoksa cevap olarak hata basılacak.
Eğer hata yok ve ok yoksa cevap olarak boş basılacak.
Eğer hata varsa ve ok da varsa (sıçtık) son aldığımız değer olan ok basılacak.
Böyle saçma bir sql callbackine böyle bir fonksiyon ile çözüm üretebiliriz; ancak doğru sql sonucu şöyle olmalı;
$sql["result"] = { code: 1, message: "OK" };
Böylece code'u kontrol ettirip messageı alabiliriz vs.
-
sorunu cozdum hocam dedıgım gıbı zaten 2. aynı anda gelme ıhtımalı yok
birinden biri ama senın mantıkda guzelmıs
ama isset ile ckullanıcam cunku bazen cvp olarak gelen verıyı gonderıyorum
-
lazz bunu yazdı
merhaba müritler
aşağıdakı kodla array ıcınde isteidigim veri varmı kontrol ediyorum
function _sqlKontrol($value,$mesaj) { if(!isset($value)){ @$cvp['OK']=$mesaj; }else { @$cvp['Hata']=$value; } }kullanımım
_sqlKontrol($veri['Hata'],"Veri Kaydedildi")
bu kodda hata varken sıkıntı yok
ama $veri['Hata'] değişkeni tanımlı deigilse hata veriyor.bu sorunu nasıl cözebılırım
olmaz mı?
NOT:denemedim
-
-
Hybris bunu yazdı
evet hocam buda oluyor ve oldukca kısa
sanırım bunu kullanıcam
-
lazz bunu yazdı
merhaba müritler
aşağıdakı kodla array ıcınde isteidigim veri varmı kontrol ediyorum
function _sqlKontrol($value,$mesaj) { if(!isset($value)){ $cvp['OK']=$mesaj; }else { $cvp['Hata']=$value; } }kullanımım
_sqlKontrol($veri['Hata'],"Veri Kaydedildi")
bu kodda hata varken sıkıntı yok
ama $veri['Hata'] değişkeni tanımlı deigilse hata veriyor.bu sorunu nasıl cözebılırım
Problemini çözmeye yönelik cevaplar almışsın zaten ama hazır rastlamışken uyarayım, değişkeni tanımlamadan array muamelesi yapıp eleman itelemeye kalkma hocam.
Evvela bir deklare et
$cvp = [];
ya da
$cvp = array();
falan de, ondan sonra ne yapiyorsan yap.
eger denetlemek icin gonderdigin arrayde gereksiz elemanlar yoksa,
function _sqlKontrol($check, $succMsg) { return !isset($check["Hata]) ? ["Ok" => $succMsg] : $check; }seklinde direkt kendini dondurerek kacabilirsin :P
