【问题标题】:Why are PHP string functions not placed in a class. [closed]为什么 PHP 字符串函数没有放在一个类中。 [关闭]
【发布时间】:2018-06-27 12:41:23
【问题描述】:

我这几天一直在努力解决这个问题,但没有任何答案。 我目前正在建立一个网站,并且我已经建立了一些功能。后来我开始重构它们并将相关函数放在一个类中,但在某些时候我对是否也应该对某些相关函数进行分组感到困惑。从那时起,我开始质疑自己,虽然 PHP 字符串函数是相关的,但为什么不将它们组合为一个类。 那么对函数进行分类的其他充分理由是什么? 我们什么时候不对某些功能进行分类?

注意:我知道存在一个 php 字符串类。

【问题讨论】:

  • 出于历史原因。和兼容性。
  • Note: I know a php String Class exist..... 你的意思是SplString?您是否真的看过它,并且它不是 PHP 核心的一部分?而且它只不过是一个字符串 var 的类包装器
  • 但是 PHP 从第一天开始就有一个字符串标量数据类型,以及操作它们的函数;甚至最原始的类直到多年后才被引入
  • 欢迎来到 SO。请结束游览。我觉得正在制作一个有效的 SO wiki 问题……专家很快就会发布一个小宝石……审查结束。尽情享受吧 ;-)
  • @mario ...您愿意以 Jon Skeet 的精确度将其带到 wiki 级别吗?

标签: php string function methods


【解决方案1】:

So what are other good reasons to classify a function? 创建一个方法类而不是一组函数并不是因为它们是相关的而将它们组合在一起,而是关于scopeencapsulationinstantiation

当方法在类中时,开发人员可以控制可见性和可访问性。这也是对对象属性的考虑。

与一组函数不同,您可以实例化一个类并为其所有属性定义值并在允许的情况下运行其方法,然后在每次之前的实例化持续存在的情况下一次又一次地执行此操作(如果您愿意)。一个例子是一个用枪发射射弹的游戏,每个射弹可能是射弹类的实例,其属性是位置、速度等……每个子弹都有自己的一组属性。示例的数量不限,很多都是常用的。

我没有将函数分组到一个类中,因为函数的相似性,而是由于类需要的功能。

【讨论】:

  • 所以你的意思是 php 字符串函数并没有被制作成一个方法,所以它们可以在正常范围内使用。
  • 没有。我很确定它们只是一组遗留函数,因为它们在 PHP 面向对象之前就存在了。
  • 虽然很方便,但我有点惊讶他们后来没有做一个字符串类,但他们当然不能弃用旧函数,太多的应用程序依赖它们。
  • 我可能也应该把它放在我的回答中,但我认为它在你原来的问题的 cmets 中得到了全面的介绍
  • 当你说基于功能时,最后一部分似乎回答了我的问题。
猜你喜欢
  • 2014-02-21
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多