php使用反射插入对象示例分享

网络编程 2025-03-14 10:58www.168986.cn编程入门

下面是这个函数的代码示例:

```php

/

@param object $model 对象

@param boolean $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) {

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by