您好,欢迎访问一九零五行业门户网

函数参数NULL问题

一个数据连接初始化的代码,本人之前学c#的,就是构造函数里的$dbo=null这个看不懂,请指教。
我可不可以不要=null呢,直接用$dbo,我个人理解是$dbo=null这条语句就表示$dbo不是object类型了,那它下面为什么还要去判断? $dbo=null这个null值不会带到函数里面去吗?
protected function __construct($dbo)
{
      //...
}
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#里这种参数是必须传入的,脑子里没那概念。。。所以根本无法理解。
但是面向对象编程,重载是一个很重要的概念(方法)
其它类似信息

推荐信息