2010-05-25 46 views
9

我是一個漫長的燒結靶之後寫一些PHP代碼做的紅寶石和我不小心寫了這個:這是爲什麼工作? (PHP點表示)

[[email protected] test]# cat run.php 
<?php 

class MyTest { 

    public function run() { 
     var_dump(this.test); 
    } 
} 

$object = new MyTest(); 
$object->run(); 
[[email protected] test]# php run.php 
string(8) "thistest" 
[[email protected] test]# 

現在,this.test應該是這個 - $>測試,而該編譯器實際上很高興讓這個運行。

有誰知道如何(this.test)得到了轉換成字符串「這項測試」?

編寫和在PHP運行5.3.2亞馬遜實例AMI-e32273a6(CentOS的5.4)

-daniel

回答

23

thistest被隱式轉換爲字符串,並.是連接運算符。

+0

和「 「。會連接在P​​HP – 2010-05-25 03:37:06

+3

啊,在PHP可愛的隱式轉換! PHP永遠不會讓我驚歎。我發誓! – CMircea 2010-05-25 03:43:24

+5

@iconiK通過適當的錯誤報告積極PHP應該扔了兩個錯誤一拉「未定義的常量'this',假設字符串‘這個’。」並不是說這樣更好,但請記住,這更明顯。 :O) – deceze 2010-05-25 03:47:17

0

PHP搜索不變這一點,並不斷測試,它doent找到他們,所以引發異常和轉換這一點,並測試「這個」和「測試」,並joing他們(點用於連接字符串)