这个php符号叫什么?

这个php符号叫什么?,php,Php,我在网上的某个地方看到了这个。我不记得在哪里,但我试过了,效果很好。它应该允许函数的顺序执行 Chmod('file', 0777).chroot('file','root').redirect('/') ; 通过在函数调用后添加“.”,我可以立即执行另一个函数。我搜索了整个互联网,但问题是我不知道它叫什么,所以我决定在这里问。我想阅读它的完整文档 在PHP中无法做到这一点。点运算符在语言中只表示一件事,那就是字符串的串联 您可以进行类似的方法链接。这是通过从类中的每个not final(这意

我在网上的某个地方看到了这个。我不记得在哪里,但我试过了,效果很好。它应该允许函数的顺序执行

Chmod('file', 0777).chroot('file','root').redirect('/') ;

通过在函数调用后添加“.”,我可以立即执行另一个函数。我搜索了整个互联网,但问题是我不知道它叫什么,所以我决定在这里问。我想阅读它的完整文档

在PHP中无法做到这一点。点
运算符在语言中只表示一件事,那就是字符串的串联

您可以进行类似的方法链接。这是通过从类中的每个not final(这意味着它应该返回实际结果或进行最终操作)方法返回
$this
来实现的。

这不是一个“表示法”,只是对串联运算符(点)的奇怪利用

它基本上利用PHP,将每个函数返回值转换为字符串

chmod()
chown()
将返回布尔值,隐式转换为空字符串。
redirect()
是一个可能由框架提供给您的函数,很可能返回void(即noting),该函数再次转换为空字符串

它不适用于返回数组的函数,也不适用于不实现-唯一不能转换为
字符串的值类型的对象

以下内容更有意义:

$value = Chmod('file', 0777).chroot('file','root').redirect('/') ;
。。。只有您实际上并不关心
$value
,您知道这将是一个无用的空字符串

我假设你觉得它“不错”,并且给出了我的解释,你可能会认为它也很“聪明”,但从技术上讲它是错误的

用分号代替点是“正确的方法”。只是在其他语言中,我们习惯于将点作为方法链接来阅读,因此与分号相比,点更容易阅读


所以,当别人称之为“丑陋”时,不要感到惊讶-你不应该这么做,而且从技术上讲这是一种“黑客行为”。

“方法链接”在jquery中被称为“方法链接”。它实际上是有效的PHP,而不是方法链接,请参见我的答案。非常感谢,我今天学到了一些新的东西。但我不能保证我不会用它。这很方便:)真的不能怪你。我做了类似的事情来为可能不存在的变量指定默认值:
isset($foo)| |$foo='bar'