PHP的instanceof詳解及使用方法介紹
php的instanceof是什么意思?instanceof由兩個單詞組成,instance和of,instance表示實(shí)例的意思,從字面上就可以理解這是實(shí)例引用的意思。instanceof 運(yùn)算符是 PHP 5 引進(jìn)的。在此之前用 is_a(),但是 is_a() 已經(jīng)過時了,最好用 instanceof。
instanceof函數(shù)用法
1、用來確定一個變量是否屬于某個類的實(shí)例;
2、用來確定一個變量是否是繼承自某一父類的子類的實(shí)例;
3、用來確定一個變量是否是實(shí)現(xiàn)了某個接口的對象的實(shí)例。
用法示例
【示例】使用 instanceof 判斷一個對象是否屬于某個類。
<?php
class A{
}
class B{
}
$obj = new A;
var_dump($obj instanceof A);
echo '<br>';
var_dump($obj instanceof B);
?>運(yùn)行結(jié)果如下:
bool(true)
bool(false)
使用 instanceof 也可用來確定一個對象是不是繼承自某個父類的子類
示例代碼如下:
<?php
class A{
}
class B extends A{
}
$obj = new B;
var_dump($obj instanceof A);
echo '<br>';
var_dump($obj instanceof B);
?>運(yùn)行結(jié)果如下:
bool(true)
bool(true)
instanceof 也可用于確定一個變量是不是實(shí)現(xiàn)了某個接口的對象的實(shí)例
示例代碼如下:
<?php
interface A{
}
class B implements A{
}
$obj = new B;
var_dump($obj instanceof A);
echo '<br>';
var_dump($obj instanceof B);
?>運(yùn)行結(jié)果如下:
bool(true)
bool(true)
雖然 instanceof 通常是直接與類名一起使用,但也可以使用字符串來代替
示例代碼如下:
<?php
interface A{
}
class B implements A{
}
$obj = new B;
$str1 = 'A';
$str2 = 'B';
var_dump($obj instanceof A);
echo '<br>';
var_dump($obj instanceof B);
echo '<br>';
var_dump($obj instanceof $str1);
echo '<br>';
var_dump($obj instanceof $str2);
?>運(yùn)行結(jié)果如下:
bool(true)
bool(true)
bool(true)
bool(true)
注意:使用字符串代替類名時,需要將字符串賦值給一個變量,直接使用字符串(例如 $obj instanceof 'A')是不行的。
如果被檢測的變量不是對象,instanceof 并不會報(bào)錯而是直接返回 FALSE。
另外,不能使用 instanceof 來檢測常量。示例代碼如下:
<?php
$a = 1;
$b = NULL;
$c = imagecreate(5, 5);
var_dump($a instanceof stdClass);
echo '<br>';
var_dump($b instanceof stdClass);
echo '<br>';
var_dump($c instanceof stdClass);
echo '<br>';
var_dump(FALSE instanceof stdClass);
?>運(yùn)行結(jié)果如下:
bool(false)
bool(false)
bool(false)
bool(false)
總結(jié)
instanceof函數(shù)是php5中新添的面向?qū)ο蟮暮瘮?shù)。他主要的做用是 檢測一個給定的對象是否屬于(繼承于)某個類(class)、某個類的子類、某個接口(interface)。若是是則返回true;反之返回false。
到此這篇關(guān)于PHP的instanceof詳解及使用方法介紹的文章就介紹到這了,更多相關(guān)PHP關(guān)鍵字instanceof詳解及使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux平臺php命令行程序處理管道數(shù)據(jù)的方法
這篇文章主要介紹了Linux平臺php命令行程序處理管道數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Linux平臺管道提示符的功能及php使用命令行處理管道數(shù)據(jù)的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-11-11
php中操作memcached緩存進(jìn)行增刪改查數(shù)據(jù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了php中操作memcached緩存進(jìn)行增刪改查數(shù)據(jù)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-08-08
php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問題小結(jié)
這篇文章主要給大家介紹了關(guān)于php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問題,文中通過示例代碼介紹的非常想吃詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
PHP高精度計(jì)算徹底解決浮點(diǎn)數(shù)精度丟失的完全指南
在PHP開發(fā)中,很多新手和老開發(fā)者都會踩一個致命坑:浮點(diǎn)數(shù)運(yùn)算精度丟失,而PHP內(nèi)置的BC Math高精度擴(kuò)展,就是官方唯一、安全的解決方案,本文結(jié)合PHP BC函數(shù)+MySQL DECIMAL金融級黃金組合,一次性講透BC系列所有函數(shù)、環(huán)境配置、返回格式、數(shù)據(jù)庫適配、避坑要點(diǎn)、實(shí)戰(zhàn)用法2026-05-05
PHP獲取當(dāng)前文件所在目錄 getcwd()函數(shù)
PHP 當(dāng)前目錄獲取方法。2009-05-05

