构造方法:实例化后自动运行。析构方法:类被销毁后自动运行。
类:
<?php
class Mysql{
protected $link="";//受保护属性
//__construct构造方法,数据库连接,在new Mysql()后自动运行,可
以传参数,不用调用,返回值return没有作用,不用写,只能是Public
function __construct($host,$username,$password,$dbname){
$link = mysqli_connect($host,$username,$password,$dbname);
if (!$link){
return "连接失败:".mysqli_connect_error();
}else{
$this->link = $link;
return $link;
}
}
//数据库语句
function query($sql){
if(preg_match('/^select/i',$sql)){
$result = mysqli_query($this->link,$sql);
if($result){
return mysqli_fetch_all($result,MYSQLI_ASSOC);
}else{
// return mysqli_fetch_all($result,MYSQLI_ASSOC);
// return false;
}
}elseif(peeg_match('/^insert/i',$sql)){
$result = mysqli_query($this->link,$sql);
$id = mysqli_insert_id($this->link);
return $id;
}else{
$result = mysqli_query($this->link,$sql);
return $result;
}
}
//析构方法,当类对象被销毁时,该析构方法会自动执行,不用调用,只>能是Public
function __destruct(){
echo "运行结束";
return mysqli_close($this->link);
}
}
?>
实例对象:
<?php
require("./fangfa_class.php");
//实例化参数为构造方法的参数
$ob = new Mysql('localhost','jsj18137','123456','jsj18137');
$arr = $ob->query("select * from news limit 2");
var_dump($arr);
//当运行到这里,程序关闭后,该类的析构方法会自动调用。用inset($ob),销毁
实例对象时也会自动调用析构方法
?>
图: