加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

除了单身,在PHP中使用静态方法有哪些令人信服的理由?

发布时间:2020-12-13 18:05:28 所属栏目:PHP教程 来源:网络整理
导读:我最近回答了这个问题: What are good reasons to use static methods in PHP? 当然,首先想到的是一个单身人士.除了一点点例外,其他的回答者提供了相同的单例示例.但这让我思考……除了创建单身之外,我并没有真正使用静态方法或属性! 简短的搜索结合了很多
我最近回答了这个问题:

What are good reasons to use static methods in PHP?

当然,首先想到的是一个单身人士.除了一点点例外,其他的回答者提供了相同的单例示例.但这让我思考……除了创建单身之外,我并没有真正使用静态方法或属性!

简短的搜索结合了很多关于使用静态方法的教程,几乎所有这些教程都实现了相同单例类的一些变体.

我真的很感兴趣:除了创建单例(或者只是懒惰而想要一个全局函数)之外,我们还有什么理由要创建静态方法?

有没有人有一个使用静态方法的实用例子,使用动态设计模式无法更好地完成?如果在它的上下文中有意义,那么这个例子可以是单例,但除了解决方案的单例方面之外,我还有其他原因.

工厂模式通常也会使用静态调用;但是对于任何不依赖于实例属性或其他实例方法的类mathod使用静态方法是明智的,特别是在出于性能原因而定期调用它们时.

PHPExcel中以下方法的逻辑位置在PHPExcel_Cell类中,因为它直接涉及操作单元格地址(任何单元格地址,而不仅仅是特定实例的地址),但它不依赖于实例,所以我声明它是静态的.

public static function stringFromColumnIndex($pColumnIndex = 0) {
    if ($pColumnIndex < 26) {
        return chr(65 + $pColumnIndex);
    } elseif ($pColumnIndex < 702) {
        return chr(64 + ($pColumnIndex / 26)).chr(65 + $pColumnIndex % 26);
    }
    return chr(64 + (($pColumnIndex - 26) / 676)).chr(65 + ((($pColumnIndex - 26) % 676) / 26)).chr(65 + $pColumnIndex % 26);
}

而且这种方法测试起来并不是特别困难

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读