首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向对象命名约定

面向对象命名约定
EN

Stack Overflow用户
提问于 2011-07-20 18:48:44
回答 4查看 1.3K关注 0票数 2

用附加到对象的方法构造代码的名称是什么?

例如:

代码语言:javascript
复制
" ... ".trim 

代码语言:javascript
复制
obj.method()

起初,许多人会认为这是面向对象的,但是php是面向对象的(很好的部分),但是它的语法与trim(" ... ")完全不同。

“面向对象”和“一切都是一个对象”不是有效答案,除非.

人们经常建议PHP是“面向对象的”,而库是“面向对象的”,但是PHP库的代码通常是用大量的静态类构造的。

例如,RedBean:

  • R::dispense($bean)
  • R::store($bean)
  • R::trash($bean)

这并不遵循obj.method语法,但据说是面向对象的。是PHP的面向对象误导,还是有一个更好的名称obj.method()编码风格。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-20 18:54:31

PHP可以同时完成这两个任务。您可以编写面向对象的代码,也可以编写过程代码。过程代码更容易理解和编写,而且大多数PHP程序员并不真正理解OOP,所以他们编写,我称之为,过程代码伪装成OOP。这包括静态方法和单例。

票数 1
EN

Stack Overflow用户

发布于 2011-07-20 18:55:01

PHP的许多核心功能都是C继承的,所以如果它不遵循OOP约定,不要感到惊讶。

重要的是,对对象调用方法确实遵循OOP约定。

票数 1
EN

Stack Overflow用户

发布于 2011-07-20 19:10:09

PHP中的字符串不是对象,而是标量值。因此,除非首先将标量字符串文本转换为对象,否则语法"..."->trim()无法工作。

有一个开放的自动装箱方案(将标量值自动转换为对象)。这将允许使用通常的面向对象语法。然而,自动拳击确实有一些性能上的损失.在这里见更多:

https://wiki.php.net/rfc/autoboxing

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6766912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档