我在互联网上看到了这个地方。不记得在哪里,但我尝试了它,它的工作原理。它应该允许顺序执行功能。
Chmod('file', 0777).chroot('file','root').redirect('/') ;
添加'。'我的函数调用后,我可以立即执行另一个函数。我已经搜索了整个互联网,但问题是我不知道它叫什么,所以我决定在这里问。我想阅读其完整的文档。
答案 0 :(得分:3)
这不是“符号”,只是对连接运算符(点)的奇怪利用。
它基本上利用了PHP的type-juggling,将每个函数返回值转换为字符串。
Core()
和chmod()
将返回布尔值,隐式转换为空字符串
chown()
是一个可能由框架提供给你的函数,很可能返回void(即注释),它再次被转换为空字符串。
它不适用于返回数组的函数或不实现__toString()
magic method的对象 - 唯一无法转换为redirect()
的值类型。
以下内容会更有意义:
string
...只有你实际上并不关心$value = Chmod('file', 0777).chroot('file','root').redirect('/') ;
,你知道这将是一个无用的空字符串。
我认为你发现它“很好”并且根据我的解释,可能会认为它也“聪明”,但它在技术上是错误的。
用分号代替点将是“正确的方式”。只是我们习惯于在其他语言中读取点作为方法链接,因此与半冒号相比更容易阅读它们。
所以,当其他人称之为“丑陋”时,不要感到惊讶 - 你不应该这样做,而且从技术上讲它是“黑客”。
答案 1 :(得分:0)
你不能用PHP做到这一点。点$this
运算符仅表示语言中的一个内容,即字符串的连接。
你可以做一个类似的方法链接。这是通过从类中返回{{1}}来实现的(这意味着它应该返回实际结果或做出最终操作)方法。