首页 » PHP教程 » php吸收对象技巧_PHP 对象获取办法

php吸收对象技巧_PHP 对象获取办法

访客 2024-10-23 0

扫一扫用手机浏览

文章目录 [+]

class Person{ public $name; public function money(){ echo '20000'; }}$p1 = new Person;$p2 = new Person;var_dump($p1, $p2);?>

输出结果:object(Person)#1 (1) { ["name"]=> NULL } object(Person)#2 (1) { ["name"]=> NULL }

天生了两个不同的工具

2、把工具赋值给其余一个变量, 采取的是"引用传值"办法, 是同一个工具(间接)

php吸收对象技巧_PHP 对象获取办法

<?phpclass Person{public $name;public function money(){echo '20000';}}$p1 = new Person;$p2 = $p1;var_dump($p1, $p2);?>

object(Person)#1 (1) { ["name"]=> NULL } object(Person)#1 (1) { ["name"]=> NULL }

两个工具的编号相同

php吸收对象技巧_PHP 对象获取办法
(图片来自网络侵删)

3、克隆工具

把一个工具进行复制, 形成一个新的工具

关键字 clone

语法: clone 工具变量

<?phpclass Person{ public $name; public function money(){ echo '20000'; }}$p1 = new Person;$p2 = clone $p1;var_dump($p1, $p2);?>

object(Person)#1 (1) { ["name"]=> NULL } object(Person)#2 (1) { ["name"]=> NULL }

两个工具的编号不同

4、工具的比较

要判断是否是同一个工具, 必须类成员同等, 而且编号必须相同

<?phpclass Person{ public $name; public function money(){ echo '20000'; }}$p1 = new Person;$p2 = clone $p1;var_dump($p1 == $p2); //true 成员属性是一样的var_dump($p1 === $p2); //false 编号不一致?>

5 工具的传值办法细节磋商

<?phpheader("Content-type: text/html; charset=utf-8");class Person{ var $age = 18;}$p1 = new Person();$p2 = $p1; //复制工具的标识符$p2->age++;var_dump($p1); echo "<br>"; //object(Person)#1 (1) { ["age"]=> int(19) }var_dump($p2); echo "<br>"; //object(Person)#1 (1) { ["age"]=> int(19) }echo "<br/>\$p1->age: ".$p1->age; //$p1->age: 19echo "<br/>\$p2->age: ".$p2->age; //$p2->age: 19$p3 = new Person();$p4 = &$p3; //引用传址$p4->age++;echo "<br>\$p3->age: ".$p3->age; //$p3->age: 19echo "<br>\$p4->age: ".$p4->age; //$p4->age: 19echo "<br>";$p2 = 10;$p4 = 10;var_dump($p1); echo "<br>"; //object(Person)#1 (1) { ["age"]=> int(19) }var_dump($p2); echo "<br>"; //int(10)var_dump($p3); echo "<br>"; //int(10)var_dump($p4); echo "<br>"; //int(10)?>

工具变量直接指向(操作)的是工具的编号(标示符)。
利用工具变量, 实在是在利用工具的标示符(但并不能显示出来),

该标示符是内置指向工具数据本身的。
则作为变量的默认传值办法, 工具变量之间的传值默认也是"值通报";

对付按值通报:$p2 = $p1;

其结果是:复制了$p1直接指向的工具编号数据, 并赋值给了$p2

$p1 object(Person)#1 (1) { ["age"]=> int(19) }

$p2 object(Person)#1 (1) { ["age"]=> int(19) }

对付引用传址:$p4 = &$p3;

变量$p4直接复制变量$p3, 也一样有着共同的工具编号数据;

$p3 object(Person)#1 (1) { ["age"]=> int(19) }

$p4 object(Person)#1 (1) { ["age"]=> int(19) }

对付赋值操作:$p2 = 10; $p4 = 10;

此时的数据10只是一个普通数据, 不是标识符就不能指向工具了;

标签:

相关文章

执业药师试卷代码解码药师职业发展之路

执业药师在药品质量管理、用药安全等方面发挥着越来越重要的作用。而执业药师考试,作为进入药师行业的重要门槛,其试卷代码更是成为了药师...

PHP教程 2025-02-18 阅读1 评论0

心灵代码主题曲唤醒灵魂深处的共鸣

音乐,作为一种独特的艺术形式,自古以来就承载着人类情感的表达与传递。心灵代码主题曲,以其独特的旋律和歌词,唤醒了无数人的灵魂深处,...

PHP教程 2025-02-18 阅读0 评论0

探寻福建各市车牌代码背后的文化内涵

福建省,地处我国东南沿海,拥有悠久的历史和丰富的文化底蕴。在这片充满魅力的土地上,诞生了许多具有代表性的城市,每个城市都有自己独特...

PHP教程 2025-02-18 阅读1 评论0

探寻河北唐山历史与现代交融的城市之光

河北省唐山市,一座地处渤海之滨,拥有悠久历史和独特文化的城市。这里既是古丝绸之路的起点,也是中国近代工业的发源地。如今,唐山正以崭...

PHP教程 2025-02-18 阅读0 评论0