2008/10/19

get_class() in PHP 4 & PHP 5

get_class() 函式可以取得物件的名稱,但是在 PHP 4 和 PHP 5,回傳的物件名稱一個是小寫、一個是有分大小寫。

class Foo {}
$aa = new Foo();
echo get_class($aa);
// in PHP 4.4.8 --> foo (全小寫)
// in PHP 5.2.6 --> Foo (分大小寫)


這個狀況是在把某個系統從 PHP 4 移植到 PHP 5 時發現的問題。
本來的寫法是

// PHP 4.4.8
if (get_class($sql)=='sql') {
// ...
}

由於前述的原因,導致程式沒有如預期的執行。
解決的方法只要利用 strtolower() 就可以了。

// PHP 5.2.6
if (strtolower(get_class($sql))=='sql') {
// ...
}

沒有留言:

張貼留言