PHP - 我应该使用类吗?

时间:2011-02-06 22:22:29

标签: php oop class

该课程如下:

class do{
  function do_something($what){
    ...
    echo $what;  
  }

  function do_other_stuff($what){
    ...
    echo $what;  
  }
}

我会像if(do::do_something('whatever'))...

一样使用它

do::do_other_stuff('whatever')...

使用像这样的类是否有意义?

基本上我只是使用它的函数,就像我将使用它们一样,如果函数在类之外。

5 个答案:

答案 0 :(得分:9)

如果你只是调用一个类的函数就好像它们是程序函数一样,那么不,我不会说它有很多价值。它所做的就是帮助你将你的方法组合在一起,但这可以通过前缀等来完成.OO编程的价值来自于封装的使用,关注点的分离等等你并没有利用您提供的代码示例中的任何一个。我认为使用PHP的OO功能可能非常有用,但是你必须确保你完全理解OO编程并且处于OO思维模式中,否则你将无法利用该功能,你只需编写程序代码

答案 1 :(得分:4)

你所做的事情在技术上是不正确的 - 如果你启用E_STRICT警告,你会发现PHP正在引发错误...

  

PHP严格标准:非静态   方法do :: do_something()不应该   在...中被静静地称呼。

无论如何,我建议您阅读现有的Functions vs. Static Methods问题和PHP Classes and Objects手册部分以获取更多信息。

答案 2 :(得分:1)

这是没有意义的。

如果您需要类似

的内容,请将您的函数包含在命名空间之上

http://www.php.net/manual/en/language.namespaces.basics.php

答案 3 :(得分:1)

这是一个糟糕的mans命名空间。虽然它当然不是设计OOP类的推荐方法,但它有用于组装实用程序代码的用途。所以这并不全是坏事。

然而,在设计真实对象结构时,最好不要考虑由他们完成平凡的任务,而是“消息传递”。在设计方法时考虑结果或隐藏。 beware of setter and getter methods也是{{3}}。 (阅读有关有意义的OOP的精彩介绍。)

答案 4 :(得分:0)

如果您确实选择使用静态方法,则应将它们声明为静态方法。正如一些人所提到的,你使用它的方式的主要好处是将相似的函数组合在一起,我有时会为一些辅助函数执行此操作,但是现在我已经学习了OO,程序编码就不再适合了,我强烈建议学习更多有关OO编码的知识,你可以用它来做一些令人惊奇的事情。

class do{
  public static function do_something($what){
    ...
    echo $what;  
  }

  public static function do_other_stuff($what){
    ...
    echo $what;  
  }
}