• 微信:
  • hai764003
  • QQ:
  • 511211014
  • E-mail:
  • jaquery@163.com

案例总数51

访问总数312402

收藏总数310933

什么是面向对象?面向对象的简单了解!返回列表

上传时间:2015-02-02 内容关键字:什么是面向对象?面向对象的简单了解!


十、异常处理:


class msyql{

protected $conn = NULL;

public function __construct(){

$this->conn=mysql_connect('localhost','root','root');

}

}

$mysql = new mysql();//返回mysql对象,并且自动连接上了数据库


/*

疑问:我怎么判断连接成功了没有?

答案:可以打印对象$conn属性,来判断


那么这个时候就多了一个步骤:


1.new mysql

2.if($mysql->conn){}


问题:为什么不用or die('连接失败')

答案:因为这个太暴力了,这样的话会让后面所有的脚本全部死掉不能继续运行。


思考:我们以前用函数的时候,都是返回一个值,用值来判断各种情况,比如返回true/false代码成功或者 失败。

现在我们用返回值还行不行?


*/

if($msyql instanceof mysql){

echo "成功";

}else{

echo "失败";

}

问题:通过这种方法可以吗?

答案:不行,因为无论数据库连接成功还是失败的话,返回的都是一个msyql的对象,所以这个是不合理的。


class msyql{

protected $conn = NULL;

public function __construct(){

$this->conn=mysql_connect('localhost','root','root');

if(!$this->conn){

//发送卫星报告,在PHP中卫星是规定的一种对象,那个类的对象:Exception类的对象。new Exception('错误原因''错误代码');

$e = new Exception('连接失败',9);

throw $e; //throw抛出异常

}

}

}

try{//测试,并捕捉错误信息

$mysql = new mysql();返回mysql对象,并且自动连接上了数据库

}catch(Exception $e){

echo "捕捉到错误信息:
";

echo  $e->getMessage(),'
';

echo '错误代码',$e->getCode(),'
';

echo '错误文件',$e->getFile(),'
';

echo '错误行',$e->getLine(),'
';

}

if ($mysql instanceof mysql) {

echo "对象创建成功,连接成功";

}else{

echo "对象创建失败,连接失败";

}

 

小海哥推荐你看: 博客园  php教程分享网站  phpmywind  脚本之家