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(){}