我看了 手动操作,但我似乎找不到答案。
PHP 中没有可见性声明的方法的默认可见性是什么?PHP 像 Java 一样具有包可见性吗?
例如,在下面的代码中,go()是公共的还是私有的?
go()
class test { function go() { } }
我问这个问题的原因是,我见过许多构造函数代码写成 function __construct(),有些写成 public function __construct()。它们是等价的吗?
function __construct()
public function __construct()
默认是公开的。总是包含它是一种很好的做法,但是 PHP4支持没有访问修饰符的类,所以在遗留代码中很容易看到没有使用这些修饰符。
而且,PHP 没有包可见性,主要是因为直到最近 PHP 还没有包。
默认值为 public。原因可能是向后兼容性,因为旧代码期望它是公共的(如果不是公共的,它就会停止工作)。
默认是公开的。
类方法可以定义为 public、 private 或 protected。没有任何显式可见性关键字声明的方法定义为 public。
Http://www.php.net/manual/en/language.oop5.visibility.php
默认可见性为 PUBLIC
来源
function __construct()和 public function __construct()作为相同的方法名工作。
如果无法为方法名定义前缀,则默认情况下该方法名应为 public。
当没有使用 能见度关键字(public,private或 protected)时,方法将是 公众人士。但是,不能以这种方式定义属性。对于 物业,需要在声明中附加可见性关键字。
public
private
protected
对于没有在类中声明的属性,并且在方法中为其赋值的属性将具有公共可见性。
<?php class Example { public $name; public function __construct() { $this -> age = 9; // age is now public $this -> privateFunction(); } private function privateFunction() { $this -> country = "USA"; // this is also public } }