php中intval函数,PHP对象的浅复制与深复制的实例详解?

用户投稿 49 0

关于“php中int”的问题,小编就整理了【2】个相关介绍“php中int”的解答:

PHP对象的浅复制与深复制的实例详解?

原型模式

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

原型模式是基于深复制和浅复制的,在Java里面有2种复制:

浅复制

将一个对象复制之后,生成一个新的对象,新对象的所有成员变量(基本类型或引用类型)都含有与原

有对象相同的值,如果原有对象的成员变量是基本数据类型,就会将这个变量的值拷贝一份到新对象

里面,如果原有对象的成员变量是引用数据类型,那么这个引用指向的对象不会新生成一份,而是,

在新对象里面的这个引用跟原有对象的引用指向的是同一个对象。

深复制

将一个对象复制之后,生成一个新的对象,新对象的基本数据类型变量含有与原有对象相同的值,如

果原有对象的成员变量是引用数据类型,在新对象里面,这些引用变量将指向被复制过的新对象,而

不再是指向原有的那些被引用的对象,深复制把要复制的对象所引用的对象都复制一遍。

比如:

有一个A对象,经过复制之后产生一个B对象,如果A里面有一个int型的变量i值为4,那么B对象里面

的inti的值也是4,A对这个int型变量的改变,不会影响B,如果A里面有一个成员变量c是引用类型

的,它指向了对象D,经过复制,B里面也会有一个c,这个c也指向D对象,A的c和B的c指向的是同一个

php函数的参数赋值方式?

2、引用赋值,例如$a=&$b,即$a和$b在都指向了内存中的同一个存储变量值得地址;

3、引用计数传值,在php和js中的对象都是默认的传值方式都是引用计数传值,例子如下:

<?php

class Dog{

public $name="小花";

public $leg=4;

}

$a=new Dog;//此时,$a指向了内存中的一个地址(假设0XFFAD[1]),该地址又指向最终对象的值

$b=$a;//此时,$b和$a都指向了内存中的另一个地址(0XFFAD[2]),该地址又指向最终对象的值

var_dump($b->leg);//结果是int 4

$b=999;

var_dump($b);//结果是int 999;

var_dump($a);//此时的结果不是int 999,而是object(Dog)[1]

public 'name' => string '灏忚姳' (length=6) public 'leg' => int 4

到此,以上就是小编对于“php中int”的问题就介绍到这了,希望介绍关于“php中int”的【2】点解答对大家有用。

抱歉,评论功能暂时关闭!