9 Haziran 2008Php isset() ve empty() fonksiyonları arasındaki fark
Aslında isset ve empty fonksiyonları her ne kadar birbirine benziyormuş gibi görünse de aslında aralarında çok önemli bir fark vardır. Bunu kolayca ayırt edebiliriz. Az önce bana gelen bir soru üzerine bunu bloğumda yazıp açığa kavuşturmak istedim
Peki nedir bu fark?
isset fonksiyonu kendisine belirtilen bir degişkenin var olup olmadığını kontrol ederken empty fonksiyonu ise kendisine verilen bir değişkenin içeriğinin boş olup olmadığına bakar.
Her ne kadar aynı işi yapıyolar gibi algılansa da arasındaki fark budur. Aşağıda birer örnekle açıklayalım.
isset fonksiyonuna örnek:
< ?php if (isset($degisken)) { echo '\$degisken degişkeni yaratılmış'; } else { echo '\$degisken değişkeni yaratılmamış'; } ?>
evet bu kod parçacığını çalıştıracak olursanız ekranınızda else kısmı dönecektir. çünkü php scriptimizde $degisken adlı bir değişken yok çünkü. if koşulundan önce bir $değişken tanımlarsanız if kısmı döncektir.
empty fonksiyonuna örnek:
< ?php if (empty($degisken)) { echo '\$degisken içeriği boş'; } else { echo '\$degisken içeriği boş değil'; } ?>
Bu kod parçaçığı çalıştırıldığında ise empty fonksiyonu $degisken adli değişkenin var olup olmadığıyla ilgilenmiyor sadece o değişkenin içeriğinin dolu ya da boş olduğuna bakıyor. Bu durumda yukarıdaki kod parçacığı çalıştırıldığında ekrana $degisken içeriği boş çıktısını verecektir.
Evet bu kadar


teşekkürler hocam.
genelde form ile veri gönderirken
if(empty($_POST['submit'])) {
….
}
şeklinde form alanının çalışmasını saglardım.. kaç zamandır isset kullanıyorum.. ki daha mantıklı geliyor isset ile kontrol etmek..
tekrar teşekkürler.
mysql den veri çekerken genelde empty kullanıyorum bazende NULL arasındaki fark nedir.
@CUFC
EMPTY yazımızda da bahsettiğimiz gibi bir değişkenin içeriğinin boş olup olmadığına bakıyor. NULL ise bir değişkenin değeri olup olmadığına bakıyor.
Kısaca Özetleyecek Olursak
yukarıdaki örnekte if kısmı dönecektir sebebi ise değişkenimizin içeriğinin boş olmasıdır. Şimdide aşağıdaki örneğe bakalım.
bu örnekte ise $degisken in olduğunu ancak bir değeri olmadığını kontrol etmektedir. Uzun lafın kısası NULL bir değişkenin değerinin olup olmadığına bakar.
merhaba bir sorum olacaktı.
$sql_sorgu = mysql_query(“INSERT INTO liste (malzeme) VALUES (‘$malzeme’)”);
if ($sql_sorgu) {
header(“Location: index.php?page=liste-islem&sonuc=tamam”);
}
ben hep isset olmadan kullanıyorum. sizce bu bir hata mıdır?
@Hard_Love
hayır kullanım tarzınız yanlış değil. İsset bir değişkenin olup olmadığıyla ilgili. Oysa siz bir sorgunun doğru olup olmadığını kontrol ediyorsunuz.
mesela ben request olup olmadıgını kontrol etmek istiyorm ne onerirsiniz ?
@okan
bunun için için yine isset ve empty deneyebilirsiniz…
ya da
$kon_adsoyad= ‘empty($ad), $empty($soyad)’;
$kon_eskiad= ‘empty($eski_ad)’;
if ($islem==”ekle”) {
if ($kon_adsoyad) {
$sql=”insert into kategoriler (ad, soyad) values (‘$ad’,'$soyad’)”;
mysql_query(“$sql”);
echo “Veri Girme Islemi OLDU”;
} else {
echo “ekle adsoyad bos”;
}
Sevgili PHP severler gönül verenler kaçgündür gecemi gündüzümü vererk yaptığım şu kodlamada;
1- Normal Bir hata varmı.
2- empty() adına bir eksiklik varmıdır.
3- Aynı anda iki dğeişkenin boş olup olmadığını kontrol ettiremezmiyim.
Bunlar çok önemli benim için…. ..
Arkadşlar: yada sayın yöneticim..
if (empty($adsoyad), empty($link)) {
v_yaz();
} else {
echo "ekle adsoyad bos";
}
üstte yanlışlıkl ayolladığım şekilde aynı anda iki verinin boş olup olmaığını kontrol edemezmiyim.. sadce bir cevap yahu..
@nursin
olmaz o şekilde ikinci yorumundaki gibi yapacaksın
Selam merhaba, örnek kodlarınızı inceledim ama benimde eklemek istediğim bir konu var. empty kullanmadanda bir değişkenin verisi olup olmadığını görebiliyoruz, yani illaki empty kullanılacak diye bir kaide yok sanıyorum.
Örnek kod:
$degisken = “”;
if ($degisken) echo ‘dolu’; else echo ‘boş’; // “boş” yazacaktır.
$degisken = “Değişken Dolu”;
if ($degisken) echo ‘dolu’; else echo ‘boş’; // “dolu” yazacaktır.
Bu şekildede boş olup olmadığı kontrol edilebiliyor. Empty fonksiyonu neden çıkarılmış ozaman buda tartışılır bir konu.
Bilgiler için sağol kardeşim, peki şunu nasıl yapabiliriz ?
Veritabanında order_status_id => 5 ise;
http://www.deneme.com/deneme.swf dosyasını sayfanın en altında görüntüle.
Teşekkürler
Merhabalar…Öncelikle değişen php ayarları ile PHP6 geldi ve oturum yönetiminde ya da sayfalardaki değişken kontrollerinde sorunlar yaşıyorum.Google’ın altını üstüne getirdim ve bu php6′da php.ini dosyasındaki değişen ayarlar gözönünde bulundurarak oturum yönetimi ve değişken kontrolü gibi konularda adam akıllı bir örnek ya da kod bulamadım.Sadece değişimden bahsedilmiş. Bir örnek vermeniz mümkün mü ?
ne gibi sorunlar bunlar ? ayrıca php6 ya neden geçtiniz daha 5.3 yeni duyurulmuşken ?
Kolay gelsin herkese tezimi hazirliyorum butun codelamarim vs. herseyim tamam fakat sona gelmeme ragmen hala yapamadigim ve kafama takilan bir sorunumun var relationship ler ve akabinde foregin key bunu nasil yapabilirim 2 farkli version kullaniyorum 1. apache2triad 2. ise kendi kurdugum mysq uzerine mysql GUI tools aydinlatabilirseniz cok sevinirim…