PHP物件導向 instanceof 運算子

2022-09-03 10:51:11 字數 2989 閱讀 5782

在php5中,通過方法傳遞變數的型別有不確定性。於是我們很難判斷,一些操作是否可以執行。

使用instanceof運算子,可以判斷當前例項是否可以有這樣的乙個形態。當前例項使用 instanceof與當前類,父類(向上無限追溯),已經實現的介面比較時,返回真。

**格式:例項名 instanceof 類名

instanceof 運算子的運用

如下例子可以執行。

01

<?

02

classuser

07

}

08

09

classnormaluserextendsuser

14

}

15

16

classuseradmin

20

}

21

$normaluser=newnormaluser();

22

useradmin::getuserinfo($normaluser);

23

?>

程式執行結果:

1

age is 99

在user類中因為沒有這個方法而報錯:

01

<?

02

classuser

07

}

08

09

classnormaluserextendsuser

14

}

15

16

classuseradmin

20

}

21

$user=newuser();// 這裡new的是user.

22

useradmin::getuserinfo($user);

23

?>

程式執行結果:

1

fatal error:  call to undefined method user::getage() in e:\phpprojects\nowamagic\php\php_instanceofoperator.php on line 99

使用instatnceof運算子保障**安全

使用instatnceof運算子,在操作前先進行型別判斷。以保障**的安全性。

view source

print

?01

<?

02

classuser

07

}

08

09

classnormaluserextendsuser

14

}

15

16

classuseradminelse

23

}

24

}

25

$user=newuser();// 這裡new的是user.

26

useradmin::getuserinfo($user);

27

?>

程式執行結果:

1

型別不對,不能使用這個方法.

PHP物件導向

1 什麼是物件導向 起初,物件導向 是專指在程式設計中採用封裝 繼承 抽象等設計方法。可是,這個定義顯然不能再適合現在情況。物件導向的思想已經涉及到軟體開發的各個方面。如 物件導向的分析 ooa,object oriented analysis 物件導向的設計 ood,object oriented...

php物件導向

smarty自定義函式 作用 用於在模板被執行時為模板變數賦值 函式名稱 assign 引數 var 宣告變數名稱 字串 value 給該變數賦值 字串 tpl assign title this is title 實現自定義函式有兩種 1.註冊自定義函式 3.版本不支援 tpl register ...

php物件導向

一 寫出php的public protected private三種訪問控制模式的區別 public 公有,任何地方都可以訪問 protected 繼承,只能在本類或子類中訪問,在其他地方不允許訪問 private 私有,只能在本類中訪問,在其他地方不允許訪問 二 請用單態設計模式方法設計類滿足要求...