$ _GET ['FriendId'] = 55 NULL dönüyor olsa aşağıda Bu, onu beklediğiniz nasıl olayı çalışmak için görünmüyor
<?PHP
$_GET['friendid'] = 55;
$friendid = (!isset($_GET['friendid'])) ? $_GET['friendid'] : 'empty';
echo $friendid;
exit;
?>
Eğer tembel ve riskli iseniz, error control operator @ ve ternary operator kısa formu kullanabilirsiniz.
$friendid = @$_GET['friendid']?: 'empty';
Şu anda üçlü operatörü ile çalışıyoruz:
$friendid = (!isset($_GET['friendid'])) ? $_GET['friendid'] : 'empty';
Bir if-else
tablosuna yıkmak ve bu gibi görünüyor:
if(!isset($_GET['friendid']))
$friendid = $_GET['friendid'];
else
$friendid = 'empty';
Gerçekten if
açıklamada oluyor ne bakmak:
!isset($_GET['friendid'])
Ünlem işaretine dikkat (!) isset
fonksiyonun önünde. Bu, "tam tersini" demek için başka bir yolu. Burada ne yapıyoruz zaten $_GET['friendid']
ayarlanan hiçbir değeri olmadığı kontrol edilir. Ve eğer öyleyse, $friendid
bu değeri almalıdır.
Ama gerçekten, bu $_GET['friendid']
bile yok beri kıracak. Ve sen orada şey değer alamaz.
İlk if
Şimdi durumu yanlış ve else
seçeneğine aktarır, böylece baştan alarak, size, $_GET['friendid']
için bir değer belirledik.
Bu durumda, empty
için $friendid
değişkenin değerini ayarlayın.
Ne istediğiniz ünlem kaldırın ve sonra değeri için $friendid
değerine alacaktır $_GET['friendid']
daha önce ayarlanmış olup olmadığını.
Cevabınızı itibaren Philippe sana empty ve isset arasındaki farklara bir göz olması gerekir düşünüyorum.
Değişken varsa isset özetlemek için () boolean TRUE döndürecektir. Bu nedenle, yapmanız olsaydı
$fid = $_GET['friendid'] = "";
$exists = isset($fid);
$ ['FriendId'] var $ _GET DOĞRU olacaktır bulunmaktadır. Eğer istediğiniz bu değilse ben boş içine bakmak öneririz. Boş bekliyoruz ne gibi görünüyor ki, ("") boş dize TRUE döndürecektir. Boş kullanırsanız, ben bağlantılı belgelerine bakın LÜTFEN, bunu beklemiyordum nerede boş true dönecektir başka durumlar vardır, bu gibi durumlarda açıkça yukarıdaki linkten belgelenmiştir.
HTH.
Bu sorunun en iyi çözüm, yani siz de 'boş dize için' onay gerekiyorsa, bir empty().
$friendid = empty($_GET['friendid']) ? 'empty' : $_GET['friendid'];
empty() değişkeni ayarlamak, ancak, böyle bir boş dizge, boş bir dizi, tamsayı 0, mantıksal yanlış olarak, 'boş' olarak kabul edilebilir şey beslenen ise ek false döndürür olup olmadığını denetler. Değil sadece ..
Tamam, ben aşina olmayan benzer bir sorunu olan olabilir! jasondavis vardı durum.
Tür kafa karıştırıcı ama sahip değil bulmak! olarak içeri ..! isset ($ avar) karşılaştırıldığında isset ($ Avar) oldukça fark yaratabilir.
Ile! bir yerde, olduğu gibi bir EVET belirten daha fazladır
since $_GET['friendid'] = 55; has been initialized...
tell me 'no' - the opposite - that it hasn't and set it to empty.
$friendid = (!isset($_GET['friendid'])) ? $_GET['friendid'] : 'empty';
where not having the ! tells me yes it has something in it, leave it be.
$friendid = (!isset($_GET['friendid'])) ? $_GET['friendid'] : 'empty';
Çok daha az kafa karıştırıcı A $ = "" sonra .... o iş eğer oldu. (Veya $ A = "" PHP olanlar için).
Dizeleri bazen çok zor olabilir gibi tüm dizeleri ve bu değişkenler kullanmak bulabilirsiniz. ... Sadece benim için kavramak biraz zor şeyler yapar neden bile karışıklık yoluyla, aslında anlayabiliyorum.