首页 php教程 php手册 php使用反射插入对象示例分享

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();
        }
    }

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java 中接口和抽象类的反射机制实现 Java 中接口和抽象类的反射机制实现 May 02, 2024 pm 05:18 PM

反射机制允许程序在运行时获取和修改类信息,它可用于实现接口和抽象类的反射:接口的反射:通过Class.forName()获取接口反射对象,访问其元数据(名称、方法和字段)。抽象类的反射:与接口类似,可获取抽象类的反射对象,访问其元数据以及非抽象方法。实战案例:反射机制可用于实现动态代理,通过动态创建代理类在运行时拦截对接口方法的调用。

golang 如何使用反射访问私有字段和方法 golang 如何使用反射访问私有字段和方法 May 03, 2024 pm 12:15 PM

Go语言中可以使用反射来访问私有字段和方法:访问私有字段:通过reflect.ValueOf()获取值的反射值,再使用FieldByName()获取字段的反射值,并调用String()方法打印字段的值。调用私有方法:同样通过reflect.ValueOf()获取值的反射值,再使用MethodByName()获取方法的反射值,最后调用Call()方法执行方法。实战案例:通过反射修改私有字段值和调用私有方法,实现对对象的控制和单元测试覆盖。

解决Java反射异常(ReflectiveOperationException)的方法 解决Java反射异常(ReflectiveOperationException)的方法 Aug 26, 2023 am 09:55 AM

解决Java反射异常(ReflectiveOperationException)的方法在Java开发中,反射(Reflection)是一种强大的机制,它允许程序在运行时动态地获取和操作类、对象、方法和属性等。通过反射,我们可以实现一些灵活的功能,比如动态创建对象、调用私有方法、获取类的注解等。然而,使用反射也会带来一些潜在的风险和问题,其中之一就是反射异常(

golang 如何使用反射动态修改变量值 golang 如何使用反射动态修改变量值 May 02, 2024 am 11:09 AM

Go语言反射允许在运行时操控变量值,包括修改布尔值、整数、浮点数和字符串。通过获取变量的Value,可以调用SetBool、SetInt、SetFloat和SetString方法进行修改。例如,可以解析JSON字符串为结构体,然后使用反射修改结构体字段的值。需要注意,反射操作较慢,且无法修改不可修改字段,修改结构体字段值时可能不会自动更新相关字段。

Golang反射介绍及应用场景分析 Golang反射介绍及应用场景分析 Apr 03, 2024 pm 01:45 PM

Go语言中的反射功能允许程序在运行时检查和修改类型的结构。通过使用Type、Value和reflect.Kind,我们可以获取对象的类型信息、字段值和方法,还可以创建和修改对象。具体的操作方法包括:检查类型(TypeOf())、获取字段值(ValueOf()、FieldByName())、修改字段值(Set())、创建对象(New())。

golang 反射的安全性考虑和最佳方案 golang 反射的安全性考虑和最佳方案 May 04, 2024 pm 04:48 PM

反射在Go中提供类型检查和修改功能,但存在安全隐患,包括任意代码执行、类型伪造和数据泄露。最佳方案包括限制反射权限、操作、使用白名单或黑名单、验证输入以及使用安全工具。实践中,反射可安全用于检查类型信息。

golang 如何使用反射创建新类型 golang 如何使用反射创建新类型 May 01, 2024 am 09:21 AM

利用反射,Go允许创建新类型,1.使用reflect.TypeOf()获取现有类型的reflect.Type值;2.使用reflect.New()创建新类型的指针值;3.通过*Ptr.Elem()访问实际值;4.反射还可以根据字符串动态创建新类型,用于构建灵活且动态的程序。

使用Java反射机制进行方法重载? 使用Java反射机制进行方法重载? Apr 15, 2024 pm 10:54 PM

Java中使用反射机制实现方法重载:通过反射获取方法:使用getMethod()方法获取方法对象,指定方法名和参数类型。调用方法:使用invoke()方法调用方法,指定调用者对象和参数值。

See all articles