相关疑难解决方法(0)

静态方法得到 - 这是不好的做法?

和同事讨论过这是不好的做法.现在我在网上找不到这个例子.

我们有很多数据库对象映射器,并且像这样调用它的函数

(示例) - setId方法获取数据库中的行并将其设置为预定义的属性

class Person {

    public static function get($id) {
        $object = new Person;
        $object->setId($id);
        return $object;
    }
}
Run Code Online (Sandbox Code Playgroud)

像这样使用它我们可以使用这样的简单结构:(我们从例如一个帖子得到id)

$person = Person::get($id);
Run Code Online (Sandbox Code Playgroud)

代替

$person = new Person;
$person->setId($id);
Run Code Online (Sandbox Code Playgroud)

现在,我的直觉告诉我这是不好的做法.但我无法解释.也许有人在这里可以解释为什么这是,或者不是不好的做法

以下是我们如何使用它的一些其他示例.我们主要用它来吸气.(只是名称,而不是代码.几乎所有这些都只运行一个查询,它可以返回1个对象,然后使用结果的id来使用setId方法)

class CatalogArticle {
   public static function get($id) { }
   public static function getByArticlenumber($articlenumber) {} //$articlenumber is unique in the database
   public static function getRandom() {} //Runs a query returning a random row
}
Run Code Online (Sandbox Code Playgroud)

php oop static-methods

14
推荐指数
2
解决办法
5598
查看次数

静态函数/类..原因?

可能重复:
我什么时候应该在课堂上使用静态方法,有什么好处?

我现在正在使用PHP.

我正在研究两组函数.

我有一个由日期处理函数组成的类.

在这个类中,我不需要属性,因为每个函数/方法或多或少都是一个实用程序.因此,我使我的班级功能全部静止.

我在这里有几个问题.

1)使用静态方法有什么好处?据我所知,由于没有Object,因此处理开销较低.我也听说这可以忽略不计(视情况而定).

2)除了公用事业之外,还有哪些其他类型的功能/方法是"静态"的良好候选者?

谢谢

php static

0
推荐指数
1
解决办法
832
查看次数

标签 统计

php ×2

oop ×1

static ×1

static-methods ×1