首页 > 后端开发 > php教程 > 函数参数NULL问题

函数参数NULL问题

WBOY
发布: 2016-06-23 13:55:46
原创
1425 人浏览过

一个数据连接初始化的代码,本人之前学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#里这种参数是必须传入的,脑子里没那概念。。。所以根本无法理解。

但是面向对象编程,重载是一个很重要的概念(方法)

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板