Php 类中函数与公共函数的区别
在类中,大多数人使用Php 类中函数与公共函数的区别,php,function,class,Php,Function,Class,在类中,大多数人使用公共函数名(){}来定义方法。但是,我已经看到了几个没有使用public关键字定义它们的示例,比如function name(){}。我对此感到困惑,因为我认为在类中必须使用public/private/protected 我做了同样的事情,功能做了与公共功能完全相同的工作 所以我的问题是,在类中使用函数和公共函数有什么区别?忽略可见性是遗留代码。PHP4不支持public、protected和private,所有方法都是public 简短:“公共函数”==“函数”//tru
公共函数名(){}
来定义方法。但是,我已经看到了几个没有使用public
关键字定义它们的示例,比如function name(){}
。我对此感到困惑,因为我认为在类中必须使用public/private/protected
我做了同样的事情,功能
做了与公共功能
完全相同的工作
所以我的问题是,在类中使用
函数
和公共函数
有什么区别?忽略可见性是遗留代码。PHP4不支持public
、protected
和private
,所有方法都是public
简短:“公共函数”==“函数”//true
另见:
类似地,
var$属性
相当于公共$attribute
。var
版本也是PHP4遗留代码。PHP>=5没有区别。类方法可以定义为public、private或protected。没有任何显式可见性关键字的方法被定义为public。是public。如果声明的方法没有显式可见性前缀,则该方法将是公共的
以下声明是等效的:
function name() {};
public function name() {};
如果不在php中设置方法的可见性,则与将其设置为public相同 发件人: 类方法可以定义为public、private或protected。方法 没有任何显式可见性关键字的声明定义为 公众
如果您使用简单的函数
方法定义,则默认情况下它将从PHP5中获取public
范围(默认值)
function sample { }
及
它们之间没有差别
private
=>可以访问类中的属性
protected
=>可以访问属性自己的类和子类
public
=>可以访问应用程序中的任何位置。在OOP PHP函数中称为方法
class MyClass {
public function aMethod() {
// (do stuff here)
}
function myMethod(){} //here public property is assumed
}
在类中可以选择省略public、private或protected关键字。如果你这样做了,那就假定是公共的
- public->在整个范围内可用,这意味着它可以在任何地方访问
- 受保护->在类或其子类中可用
- private->仅在定义函数的类中可用
从PHP5.X开始,这些特性就可用了,它们使您可以控制变量或函数的可见性
如果您看到一个带有标识符的函数,比如public、protected和private,它们都在类中
public function functionName(){}
and
function functionName(){}
基本上是一样的,只是有一个可见性级别
是一种面向对象的方式,是另一种php普通函数,没有可见性级别。@Will我说省略它是遗留代码,因此您应该始终显式地编写public
,以保持清晰性和将来的完全兼容性。我很好奇为什么要将其标记为“遗留”代码。方法是特定的:方法的可见性可以定义,但不是必需的,并且提供了合适的默认值。根据我的阅读,非显式声明在新代码中仍然有效。@GeorgeCummins它起源于PHP4,存在是为了向后兼容。其他OOP兼容性功能已经被取消(也就是像命名空间类的类一样命名的构造函数),显式定义可见性是唯一安全的方法
public function sample { }
class MyClass {
public function aMethod() {
// (do stuff here)
}
function myMethod(){} //here public property is assumed
}
public function functionName(){}
and
function functionName(){}