-
2020-11-14 14:57:26
setState = (params = {}) => { Object.keys(params).forEach((key) => { this[key] = params[key]; }); }
更多相关内容 -
python 实现按对象传值
2020-09-18 05:37:08今天小编就为大家分享一篇python 实现按对象传值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
php实现对象传值方式的具体案例
2021-04-23 11:21:16php实现对象传值方式的具体案例发布时间:2020-07-09 11:01:54来源:亿速云阅读:85作者:Leah今天就跟大家聊聊有关php实现对象传值方式的具体案例,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了...php实现对象传值方式的具体案例
发布时间:2020-07-09 11:01:54
来源:亿速云
阅读:85
作者:Leah
今天就跟大家聊聊有关php实现对象传值方式的具体案例,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
变量赋值与对象赋值对比<?php
// 声明一个变量并赋值
$a = 1;
// 将数据类型的值 赋值 给一个变量
$b = $a;
// 修改$a的值
$a = 2;
// $a和$b是两个独立的内存空间修改其中一个另一个不受影响
echo $b; // 1
class Person
{
public $name;
public $age;
}
// 将对象类型的数据 赋值 给一个变量
$p = new Person;
// 通过对属性修改值,来确定面向对象中 对象的传值方式
$p->name = 'jesse';
// 若是成功修改值,则是引用传值
echo $p->name; // jesse
?>
案例解释:
在这里通过变量的赋值方式 与 对象的赋值方式方式相对比,代码第5行中的赋值方式为“拷贝赋值”,故在修改其源值($a的值)的情况下,$b的值不受影响。$a与$b的内存关系图如下:
而代码20行将数据类型赋值给$p变量,通过$p修改对象内部的值成功,对比变量的传值方式,证明这是引用传值,内存关系图如下:
而代码20行将数据类型赋值给$p变量,通过$p修改对象内部的值成功,对比变量的传值方式,证明这是引用传值,内存关系图如下:<?php
class Person
{
public $name;
public $age;
// 将对象类型的数据 赋值 给一个变量
$p = new Person;
// 通过对属性修改值,来确定面向对象中 对象的传值方式
$p->name = 'jesse';
// 将对象赋予另一变量
$m = $p;
// 另一变量修改属性值
$m->name = 'Marry';
// 输出源变量 赋值变量访问内部属性的结果
echo $p->name, $m->name;
}
?>
第12行代码为本篇文章的最“点睛”的代码,等号右边为是一个对象,左边是一个变量,那么犀利的问题来了,$m是将对象拷贝一份?还是按引用传递呢?该代码内存关系如下:
所以,最后两个对象的属性值均被修改为Marry!!!
那按引用传值会是怎么个情况?<?php
class Person
{
public $name;
public $age;
}
// 将对象类型的数据 赋值 给一个变量
$p = new Person;
// 通过对属性修改值,来确定面向对象中 对象的传值方式
$p->name = 'jesse';
// 将对象赋予另一变量
$m = &$p;
// 另一变量修改属性值
$m->name = 'Marry';
// 输出源变量 赋值变量访问内部属性的结果
echo $p->name, $m->name;
?>
看完上述内容,你们对php实现对象传值方式的具体案例有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
-
Mybatis:使用map代替对象传值
2022-02-18 15:22:16总结了Mybatis中的字段与实体类属性的映射以及SQL语句中对象传值和map传值的特点Mybatis:使用map代替对象传值
在Mybatis中,实体类的属性需要与数据库字段一一映射;
使用对象传值时,
1. 1. 1. SQL语句#{}中的参数名需要与实体类属性名保持一致;
2. 2. 2. SQL语句中的字段个数需要与实体类的构造方法参数个数相同;
所以说用对象传值时有实体类的约束。使用map传值,在SQL语句中可以自定义字段名,以及字段的个数
map传值通过键值对关联字段,就去除了实体类的约束;字段个数设置有个前提:数据库中设置字段允许为空;
insert
<mapper namespace="com.tl.dao.UserMapper"> <insert id="addUser" parameterType="map"> insert into user(id,name) values (#{uid},#{pename}); </insert> </mapper>
public class Test { @org.junit.Test public void Test() { SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("uid",7); map.put("pename","唐僧"); int i = mapper.addUser(map); System.out.println(i); sqlSession.commit(); sqlSession.close(); } }
update<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.tl.dao.UserMapper"> <update id="updateUser" parameterType="map"> update user set name=#{pename} where id=#{uid}; </update> </mapper>
public class Test { @org.junit.Test public void Test() { SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("uid",7); map.put("pename","至尊宝"); int i = mapper.updateUser(map); System.out.println(i); sqlSession.commit(); sqlSession.close(); } }
-
08-Mybatis参数的使用之三--使用对象传值
2020-11-13 10:35:26对象传值,传入的是一个对象,比较点单,直接看栗子。 1. StudentDao /** * 通过name和age寻找学生 * */ public List<Student> selectStudentByObject(Student student); 2. Student前一篇:07-Mybatis参数的使用之二–多个参数的使用@Param
https://blog.csdn.net/fsjwin/article/details/109669306
对象传值,传入的是一个对象,比较点单,直接看栗子。1. StudentDao
/** * 通过name和age寻找学生 * */ public List<Student> selectStudentByObject(Student student);
2. StudentDao.xml
<!--传递一个对象过来--> <select id="selectStudentByObject" resultType="com.yuhl.domain.Student"> select id,name,email,age from student where name =#{name} or age =#{age} </select>
3.测试
@Test public void test5() throws IOException { SqlSession sqlsession = MybatisUtil.getSqlsession(); StudentDao studentDao = sqlsession.getMapper(StudentDao.class); //可以吧查询的条件放进去,也可以使用一个单独的类ParaObject类封装就可以了。 Student student = new Student(1001, "yuhl", "ss.qq.com", 20); List<Student> studentList = studentDao.selectStudentByObject(student); studentList.forEach(stu -> System.out.println(stu)); }
测试结果:
Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. Opening JDBC Connection Created connection 1739876329. ==> Preparing: select id,name,email,age from student where name =? or age =? ==> Parameters: yuhl(String), 20(Integer) <== Columns: id, name, email, age <== Row: 1001, 张三, zhangsan@qq.com, 20 <== Row: 1003, yuhl, yuhl@163.com, 20 <== Row: 1004, rll, yuhl@163.com, 20 <== Row: 1005, 大佬, yuhl@163.com, 20 <== Total: 4 Student{id=1001, name='张三', email='zhangsan@qq.com', age=20} Student{id=1003, name='yuhl', email='yuhl@163.com', age=20} Student{id=1004, name='rll', email='yuhl@163.com', age=20} Student{id=1005, name='大佬', email='yuhl@163.com', age=20}
4. 总结
这种做法也很普遍,需要掌握,也比较简单。
下一篇:09-Mybatis参数的使用之四–通过索引传值-了解https://blog.csdn.net/fsjwin/article/details/109670182
-
前端vue给后端list集合对象传值
2021-03-27 20:05:47今天编写项目时遇到一些问题,就是不知道前端怎么给后端的list赋值 因为前面做的都是单个查询 如下 ... import io.swagger.annotations.ApiModel; import io.swagger....@ApiModel(value = "数据查询对象", desc -
C# 引用类型对象传值
2015-09-24 13:58:47T t1 = new T(); T t2 = new T(); MemoryStream stream = new MemoryStream(); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, -
关于php中对象传值方式的详解
2019-11-28 18:12:28变量赋值与对象赋值对比 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <?... -
PHP对象传值 - 引用传值
2020-07-10 13:58:58对象传值本质上是引用传值,将一个对象变量(a)赋值给另个变量(a)赋值给另个变量(a)赋值给另个变量(b),实际上是将a存储的对象内存引用地址赋值a存储的对象内存引用地址赋值a存储的对象内存引用地址赋值b,... -
jQuery对象初始化的传参方式
2020-10-24 16:15:12本文简单介绍了jQuery对象初始化传参方式,以及具体的示例,是篇非常不错的文章,这里推荐给小伙伴们。 -
Dart/Flutter中对象传值(by value)还是引用(by ref)
2019-05-16 19:50:27之前看到有个文章url说是传值,我读了一些资料,觉得是错误的!正确的答案是引用。 参考这篇文章 https://stackoverflow.com/questions/54545977/dart-variable-store-reference-to-the-value import 'dart:core'; ... -
php对象传值、对象克隆
2017-08-30 09:59:37php对象的传值 php对象的传值效果和引用一样。因为在php5,一个对象变量不再保存整个对象的值,而是保存一个标识符来访问真正的对象内容。当对象作为参数传递,作为结果返回,或者赋值给另外一个变量,另外一个... -
android activityIntent 传值 传对象
2015-04-10 09:42:06android activityIntent 传值 传对象 -
vue事件传值使用 dataset 对象传值
2021-12-27 19:36:05修改 使用 dataset 对象传值 -
python 按对象传值
2017-04-10 16:07:08今天研究了下Python中的传值问题: 1. 所有传递都是引用传递,形参与实参ID一样 2. 对于string int float bool等不可变类型,操作时会变为新的对象 3. 对于[] {}等可变类型,操作时还是引用的全局对像 -
对象传值到函数的三种类型:传值、指针、引用
2021-10-29 13:41:44转自:对象传值到函数的三种类型:传值、指针、引用最近再次拿起C++的书复习,然后觉得自己欠缺很多,我始终相信好记性不如烂笔头,所以我再次下定决心要把自己理解的写成文字,以后可以回过来看看。好了,废话不多... -
C# 类与类之间传值(把类作为对象传值)
2020-10-09 11:38:12现有A,B两个类,在A类的方法中new 一个B类并加在主函数的类数组中 -
android Parcle对象传值,解决android穿对象问题
2013-04-07 15:08:47android Parcle对象传值,解决android穿对象问题 -
关于java中面向对象传值的问题
2016-06-21 11:11:12如图所示 -
vue中使用props传值的方法
2021-01-21 11:38:561.静态传值(在父组件中赋值好props中属性的值传递给子组件) 父组件 <input v-model=message> <child message=hello></child> [removed] import child from './components/child.vue' export ... -
session对象和 request对象传值区别
2019-12-04 13:38:21主要区别在于 生命周期不同 request 生命周期为 一个请求 ,范围较小。 ...不需要声明,系统自动封装了,可以直接用。... 存值:request.setAttribute...所以转发可以用request对象传值,重定向要用session对象传值 -
php的对象传值与引用传值代码实例讲解
2021-03-23 08:12:03变量赋值与对象赋值对比 -
url地址中对象传值编码和解码的方法
2019-05-24 11:26:12发送方:encodeURIComponent(JSON.stringify(数据)); 接收方:JSON.parse(decodeURIComponent(数据)) 实例: 发送方: let updateData = { isUpdate: true, version: `1.0.0`, ... updataContent: [`1.... -
Map 对象传值使用
2019-01-17 14:18:41Controller 层 /** * 查询一条数据 * * @param major . * @param minor . * @return . */ @GetMapping("beacons/{major}/{minor}"... public ResultData findByMajorAndMinor(@... -
vue组件传值 prop传递对象
2021-12-15 15:21:23vue组件传值prop -
关于 FormData 对象数组传值总结
2021-02-01 03:43:04关于 FormData 对象数组传值总结jQuery Java Spring MVCjQuery 代码提示: Ncr 已经存在于实体类中。// 提交数据$('#submit-btn').click(function(){// 数据获取var formData = {};var inputNum = $('.form-... -
session对象和request对象传值区别和注意事项
2016-05-19 08:32:44请问:request.getSession().setAttribute() 和request.setAttibute()的区别是什么,两者在什么情况...ps:我自己了解到的是,前者是会话机制传值,而通过session传值,如果session的生命周期到了 是不是就取不到值了呢