1. 即使類中的方法並未用static宣告,但其未使用到可改變的類成員變數,在外部仍可用操作符::來呼叫;
2. 以靜態方式(用::操作符)呼叫的方法中$this的取值是由呼叫時的上下文決定的!而不是定義他的類!!
例如以下的**:
<?php class testclass1 }
class testclass2 }
$t2 = new testclass2();
$t2->teswww.cppcns.comt_func2();
這段**是輸出會是什麼呢,我原以為會是normal_v from testclass1
static_v from testclass1,測試發現其實我錯了,正確的輸出是:
normal_v from testclass2
s from testclass1
說明:test_func1()雖然是在testclass1中定義的,但卻是在testclass2中呼叫的,其內部的$this變數則是由testclass2決定的!
其實這兩個類的關係應該屬於"雙向關聯".
感興趣的朋友可以測試執行本文例項,相信會有新的收穫!
本文標題: php使用靜態方法的幾個注意事項
本文位址:
PHP靜態方法的幾個注意事項
1.即使類中的方法並未用static宣告,但其未使用到可改變的類成員變數,在外部仍可用操作符 來呼叫 2.以靜態方式 用 操作符 呼叫的方法中 this的取值是由呼叫時的上下文決定的 而不是定義他的類 例如以下的 這段 是輸出會是什麼呢,我原以為會是normal v from testclass1 ...
php與memcached配合使用注意事項
1.memcached啟動的時候,如果指定了ip,則建立鏈結的時候socket會繫結到這個連線上。例如 home admin memcached bin memcached d m 5000 i 192.168.1.1 則socket繫結到了192.168.1.1上去,如果在php中鏈結的時候 通過...
String的splic方法使用的注意事項
今天在專案中遇到了乙個平時不注意的問題,測的時候發現的,string value canonical 00000000000000000000000000000028 canonical 0 0 yes no yes yes string arr value.split 我本以為得到的arr陣列長度...