为什么会这样?(php点表示法)

为什么会这样?(php点表示法),php,Php,在做了很长时间的ruby之后,我写了一些php代码,我不小心写了以下内容: [root@ip-10-160-47-98 test]# cat run.php <?php class MyTest { public function run() { var_dump(this.test); } } $object = new MyTest(); $object->run(); [root@ip-10-160-47-98 test]# php run.php

在做了很长时间的ruby之后,我写了一些php代码,我不小心写了以下内容:

[root@ip-10-160-47-98 test]# cat run.php
<?php

class MyTest {

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

$object = new MyTest();
$object->run();
[root@ip-10-160-47-98 test]# php run.php
string(8) "thistest"
[root@ip-10-160-47-98 test]#
[root@ip-10-160-47-98测试]#cat run.php

this
test
隐式转换为字符串,
是连接运算符。

php搜索常量this和常量test,它找不到它们,因此引发异常,将this和test转换为'this'和'test'并将它们连接起来(点用于连接字符串)

ah,PHP中可爱的隐式转换!PHP从未停止让我惊讶。我发誓@iconiK和适当的错误报告活动PHP应该抛出两个错误,一个是“未定义常量
this
,假设字符串为“this”。“请注意,这不是更好,只是更明显。”o)