时间:2021-07-01 10:21:17 帮助过:53人阅读
class DB_Connect{ protected $db; protected function __construct($dbo=NULL) { if(is_object($dbo)) { $this->db=$dbo; } else { $dsn="mysql:host=".DB_HOST."; dbname=".DB_NAME; try { $this->db=new PDO($dsn,DB_USER,DB_PASS); } catch(Exception $e) { die($e->getMessage()); } } } }
function __construct($dbo=NULL)
表示 $dbo 这个参数是可缺省的,因为他有初值 NULL
如果仅是
function __construct($dbo)
那么 $dbo 这个参数就一定要传入的
由于是可缺省参数,所以
new DB_Connect();
new DB_Connect($db);
都不会出错
C# 支持重载,所以对于这种情况你可能是这样写
DB_Connect::__construct($dbo) {}
DB_Connect::__construct() {}
这样说我就明白。跟C#区别很大啊,C#里这种参数是必须传入的,脑子里没那概念。。。所以根本无法理解。
但是面向对象编程,重载是一个很重要的概念(方法)