首页 >后端开发 >PHP问题 >php可以私有静态方法吗

php可以私有静态方法吗

青灯夜游
青灯夜游原创
2021-06-02 18:52:192308浏览

php可以私有静态方法。静态私有方法提供了一种从类外部隐藏静态代码的方法;如果几种不同的方法(静态或非静态)需要使用它,即代码重用,这可能是有用的。

php可以私有静态方法吗

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

我明白静态意味着一个对象不需要被实例化为该属性/方法可用。我也明白,这适用于私有财产和方法以及公共方法。我想知道的是什么是静态私有功能可以让你获益。例如:

class Beer {
    static private $beertype = "IPA";
    private function getBeerType() {
            return self::$beertype;
    }
    static public function BeerInfo() {
            return self::getBeerType();
    }
}
print Beer::BeerInfo() . "\n";

只要从静态公共方法中调用getBeerType(),私有方法就会执行得很好,没有实例化的对象。如果静态公共方法可以访问所有私有方法(静态和非静态),那么声明方法static private的好处是什么?

在严格的错误报告打开的情况下,我确实得到了我应该使getBeerType()静态的警告,尽管它仍然允许我运行代码。我做了一些研究,似乎其他语言(Java)将强制您在静态公共方法调用时将私有方法声明为静态方法。看起来像PHP让你摆脱这一点。有没有办法强制它抛出错误而不执行?

静态私有方法提供了一种从类外部隐藏静态代码的方法。如果几种不同的方法(静态或非静态)需要使用它,即代码重用,这可能是有用的。

静态方法和静态变量(有时称为类方法和类变量)是将代码和数据放入一种命名空间的一种方式。您也可以将类变量视为附加到类本身的变量,其中(根据定义)只有一个,而不是该类的实例,其中可能有零个,一个或多个。类方法和类变量可用于处理不仅在所有实例中保持相同但与实际相同的属性。

类变量的一个示例是ORM实体对象中的数据库处理程序。所有实例都是自己的对象,但是他们都需要访问相同的数据库处理程序来加载和保存自身。

私人与公众是一个完全独立的品质,我怀疑你在绊倒什么。私有方法不能被调用,私有变量不能从类之外的代码访问。私有方法通常用于在对象外部不能访问的对象上实现“内部”逻辑。这种限制可以通过实例方法和类方法来实现。

私有类方法的示例可以是工厂方法。可能有三个工厂调用来创建可能在提供的参数方面不同的对象。但大部分操作是一样的。所以它进入非私有工厂方法调用的私有静态方法。

推荐学习:《PHP视频教程

以上是php可以私有静态方法吗的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn