In PHP5 ist der Typ der durch Methoden übergebenen Variablen unsicher. Verwenden Sie den Instanzoperator, um zu bestimmen, ob die aktuelle Instanz eine solche Form haben kann. Wenn die aktuelle Instanz „instanceof“ verwendet, um sie mit der aktuellen Klasse, der übergeordneten Klasse (unendliche Nachverfolgung nach oben) und der implementierten Schnittstelle zu vergleichen, gibt sie „true“ zurück.
"instanceof"Die Verwendung des Operators ist sehr einfach. Er verwendet zwei Parameter, um seine Funktion zu vervollständigen. Der erste Parameter ist das Objekt, das Sie überprüfen möchten, und der zweite Parameter ist der Klassenname (eigentlich ein Schnittstellenname), der verwendet wird, um zu bestimmen, ob dieses Objekt eine Instanz der entsprechenden Klasse ist. Natürlich wird die obige Terminologie verwendet, damit Sie sehen können, wie intuitiv dieser Operator zu verwenden ist. Seine grundlegende Syntax lautet wie folgt:
if (object instanceof class name){ //做一些有用的事情 }
<?php class User{ private $name; public function getName(){ return "UserName is ".$this->name; } } class NormalUser extends User { private $age = 99; public function getAge(){ return "age is ".$this->age; } } class UserAdmin{ //操作. public static function getUserInfo(User $_user){ echo $_user->getAge(); } } $normalUser = new NormalUser(); UserAdmin::getUserInfo($normalUser); ?>
<?php class User{ private $name; public function getName(){ return "UserName is ".$this->name; } } class NormalUser extends User { private $age = 99; public function getAge(){ return "age is ".$this->age; } } class UserAdmin{ //操作. public static function getUserInfo(User $_user){ echo $_user->getAge(); } } $User = new User(); // 这里new的是User. UserAdmin::getUserInfo($User); ?>
Fatal error: Call to undefined method User::getAge() in E:\PHPProjects\NowaMagic\php\php_InstanceofOperator.php on line 99
Sicherheit des Codes zu gewährleisten.
<?php class User{ private $name; public function getName(){ return "UserName is ".$this->name; } } class NormalUser extends User { private $age = 99; public function getAge(){ return "age is ".$this->age; } } class UserAdmin{ //操作. public static function getUserInfo(User $_user){ if($_user instanceof NormalUser ){ echo $_user->getAge(); }else{ echo "类型不对,不能使用这个方法."; } } } $User = new User(); // 这里new的是User. UserAdmin::getUserInfo($User); ?>
Das obige ist der detaillierte Inhalt vonWas ist die Instanz des PHP-Typoperators? Wie benutzt man?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!