php函数调用中的下划线

yre*_*uta 1 php oop

我知道PHP中函数名称的下划线用于"隐式"表示它们应该是私有的...但我刚看到这段代码:

class DatabaseConnection
{
  public static function get()
  {
    static $db = null;
    if ( $db == null )
      $db = new DatabaseConnection();
    return $db;
  }

  private $_handle = null;

  private function __construct()
  {
    $dsn = 'mysql://root:password@localhost/photos';
    $this->_handle =& DB::Connect( $dsn, array() );
  }

  public function handle()
  {
    return $this->_handle;
  }
}

print( "Handle = ".DatabaseConnection::get()->handle()."\n" );
print( "Handle = ".DatabaseConnection::get()->handle()."\n" );
Run Code Online (Sandbox Code Playgroud)

在这段代码中,变量中有下划线是什么意思?

Pas*_*TIN 5

方法和属性有点相同:约定是相同的:具有以一个下划线开头的名称通常意味着它们被视为private/protected.

(当然,对于名称以两个下划线开头的方法不一样:那些是魔术方法,两个下划线不应该用于"普通"方法名称)