php使用反射插入对象示例分享
Jun 06, 2016 pm 08:24 PM这篇文章主要介绍了php使用反射插入对象示例,需要的朋友可以参考下
复制代码 代码如下:
/**
* 插入insertModel(),利用反射,效率稍差
* @param class $model 对象
* @param bool $is_returnLastInsertId 是否返回添加ID
* @return int 默认返回成功与否,$is_returnLastInsertId 为true,返回添加ID
*/
public function insertModel($model,$is_returnLastInsertId=FALSE) {
try {
require_once dirname(dirname(__FILE__)).'\Models\BaseModel.php';
if(!is_subclass_of($model, "BaseModel")){
exit($this->getError(__FUNCTION__, __LINE__));
}
$className=get_class($model);
$tName = $this->formatTabName($className);
$reflectionClass=new ReflectionClass($className);
$properties=$reflectionClass->getProperties();
unset($properties[0]);
$fields="";
$vals="";
foreach ($properties as $property) {
$pName=$property->getName();
$fields.=$pName.",";
$vals.='\''.$model->$pName.'\''.',';
}
$fields=rtrim($fields,',');
$vals=rtrim($vals,',');
$this->sql = "insert into {$tName} ({$fields}) values ({$vals})";
if($is_returnLastInsertId){
$this->conn->exec($this->sql);
$lastId = (int)$this->conn->lastInsertId();
return $lastId;
} else {
$row = $this->conn->exec($this->sql);
return $row;
}
} catch (Exception $exc) {
echo $exc->getMessage();
}
}

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Pelaksanaan mekanisme refleksi antara muka dan kelas abstrak di Jawa

Kaedah untuk menyelesaikan pengecualian refleksi Java (ReflectiveOperationException)

Cara menggunakan refleksi untuk mengakses medan dan kaedah persendirian dalam golang

Cara menggunakan pantulan untuk mengubah suai nilai pembolehubah secara dinamik dalam golang

Pengenalan kepada refleksi Golang dan analisis senario aplikasi

Cara menggunakan refleksi untuk mencipta jenis baharu dalam golang

Menggunakan mekanisme refleksi Java untuk membebankan kaedah?

Pertimbangan keselamatan dan penyelesaian terbaik untuk refleksi golang
