Php: Bir değişken belli bir sınıfın örneği olup olmadığını kontrol edin

5 Cevap

Ben $ _GET ben gerçekten Kullanıcı sınıfın bir nesnesi olduğunu doğrulamak istiyorum aracılığıyla bir değişken olsun her zaman.

Yani:

if (isUser($_GET['valid_user']))
{
...
}

orada bir bu sözde "IsUser" yerine kullanmak için fonksiyon inşa?

Thanks a lot!

5 Cevap

Belirli bir sınıf için herhangi bir değişkeni kontrol edebilirsiniz:

if ($my_var instanceof classname)

Ancak, sizin durumunuzda $ _GET ["valid_user"] isteği geliyor ve bir nesne olacak asla gibi, hiç çalışmaz ki.

IsUser () muhtemelen geçerli oturumu doğrular bir kullanıcı yönetimi kütüphaneden özel bir fonksiyondur. Sen bunu değiştirmek isterseniz çalışır bir göz how almak gerekir.

Size yardımcı olabilir PHP dili, bir işlevi vardır:

bool is_a ( object $object , string $class_name )

Checks if the object is of this class or has this class as one of its parents: documentation Gönderen

Bu deneyebilirsiniz:

if (is_object($_GET['valid_user']))
{
     // more code here
}

o bir nesnedir ve aşağıdaki linki hangi sınıfı kontrol açıklar olmadığını is_object kontrol etmek

http://hr.php.net/manual/en/reflectionclass.isinstance.php

$ _GET [] Değişkenleri değişkenler daha sabitler, onlar sadece okumak .. ama diğer herhangi bir $variable Senin gibi erişilebilir olur edilmektedir.

Sizin örnekte:

if (isUser($_GET['valid_user']))
{
...
}

Ben okumak olurdu hope ki:

if (isUser($some_sanatized_variable))

.. IsUser () olmadıkça yapıyor budur. 'Değişkenleri' o PHP setleri IsUser () yeterince onun ile ilgili ne olduğunu bilmiyor olabilir ki benim endişe göstermektedir ki, herhangi bir sınıfa ait değildir.