什么是面向对象?面向对象的简单了解!返回列表
上传时间: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-fpm 基础介绍
- 下一篇:COOKIE、SESSION之彻底搞定!