假设我有一堂课:
class test {
public static function sayHi() {
echo 'hi';
}
}
调用它test::sayHi();
我可以sayHi()
在课堂之外定义或者完全摆脱课堂吗?
public static function sayHi() {
echo 'hi';
}
我只需要这个函数来封装脚本的代码。也许答案不是静态方法而是普通函数def?
假设我有一堂课:
class test {
public static function sayHi() {
echo 'hi';
}
}
调用它test::sayHi();
我可以sayHi()
在课堂之外定义或者完全摆脱课堂吗?
public static function sayHi() {
echo 'hi';
}
我只需要这个函数来封装脚本的代码。也许答案不是静态方法而是普通函数def?
没有类的静态方法根本没有任何意义。静态关键字表明该方法对于类的所有实例都是相同的。这使您可以在类本身而不是在其实例之一上静态调用它。
如果方法的内容是自包含的,即不需要该类的任何其他静态变量或方法,则可以简单地省略该类并将代码放在全局方法中。使用全局方法被认为是一种不好的做法。
所以我的建议是只保留这个类,即使它只有一个方法。这样,您仍然可以自动加载文件,而不必自己要求它。
OOP 中的函数默认是公共的,您可以将它们修改为私有的,例如:
private function test(){
//do something
}
或者就像你说的,静态的,在公共的或私人的,比如:
private static function test(){
//do something
}
但是,如果您不使用 OOP,则默认情况下函数是全局和公共的,您无法将它们的访问权限更改为私有。这不是他们应该工作的方式,因为如果您将他们的类型更改为私有,您将永远无法访问该功能。此外,静态不起作用,因为它是 OOP 的另一个属性......
然后,您可以简单地创建该函数并从您想要的任何地方访问它(显然在哪里可用:P,因为您需要包含存储的文件)