首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php类中变量的链赋值不起作用

在PHP中,变量的链式赋值是指将一个变量的值赋给另一个变量,并且可以通过链式操作将多个变量赋值为同一个值。然而,PHP中的变量赋值是按值传递的,而不是按引用传递的。因此,在PHP中,链式赋值不会改变原始变量的值。

例如,考虑以下代码:

代码语言:php
复制
$a = $b = $c = 10;

在这个例子中,我们将变量$c的值赋给$b,然后将$b的值赋给$a。但是,这并不会改变原始变量$c的值。每个变量都将独立地持有相同的值。

对于类中的变量,也是同样的情况。无论是在类的构造函数中还是在类的方法中,如果使用链式赋值,变量的值也不会相互影响。

然而,在PHP中,可以通过引用传递来实现链式赋值的效果。引用传递允许多个变量引用同一个值,因此对其中一个变量的修改会影响到其他变量。可以使用&符号来指定引用传递。

以下是一个示例:

代码语言:php
复制
$a = $b = $c = 10;
$a =& $b =& $c;
$c = 20;

echo $a; // 输出 20
echo $b; // 输出 20
echo $c; // 输出 20

在这个例子中,通过使用引用传递,将变量$c的值赋给$b,然后将$b的值赋给$a。当修改$c的值时,$a$b的值也会相应地改变。

总结起来,PHP中的变量链式赋值不会改变原始变量的值,除非使用引用传递。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP变量赋值

PHP变量赋值 这个标题估计很多人会不屑一顾,变量赋值?excuse me?我们学开发第一课就会了好不好。但是,就是这样基础东西,反而会让很多人蒙圈,比如,值和引用关系。...这也是我们天天要打交道四种类型。 然后,变量变量赋值。...这种情况就是我们所说引用赋值。当d1发生变化时,d2也会产生变化。 可以这么说:引用赋值就是为原变量建立了一个Windows下快捷方式或者Linux软链接。...最后,轻松一下,引用变量赋值就和我们给方法传引用参数一样,使用一个&符号就可以啦!...1// 引用赋值 2$b = &$v; 3$b = '3'; 4echo $v, PHP_EOL; 今天我们更深入学习和了解了一下PHP赋值问题,特别是普通赋值和引用赋值问题。

3.4K30

MySQL变量定义和变量赋值使用

说明:现在市面上定义变量教程和书籍基本都放在存储过程上说明,但是存储过程上变量只能作用于begin…end块,而普通变量定义和使用都说比较少,针对此类问题只能在官方文档才能找到讲解。...前言 MySQL存储过程,定义变量有两种方式: 1、使用set或select直接赋值变量名以@开头 例如: set @var=1; 可以在一个会话任何地方声明,作用域是整个会话,称为用户变量...2、以declare关键字声明变量,只能在存储过程中使用,称为存储过程变量,例如: declare var1 int default 0; 主要用在存储过程,或者是给存储传参数。...set语句语法形式set var_name=expr [, var_name=expr]…; set语句既可以用于局部变量赋值,也可以用于用户变量申明并赋值。...注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值” 用户变量与数据库连接有关,在连接声明变量,在存储过程创建了用户变量后一直到数据库实例接断开时候

8.2K41

PHP变量

PHP变量是用于储存信息容器,我们命令服务器去干活时候,往往需要产生一些数据,需要临时性存放起来,方便取用赋值方法与数学代数相类似 1、在PHP变量是用于储存信息容器,类似于数学集合...2、赋值方法与数学代数相类似 变量是用于存储值,我们命令服务器去干活时候,往往需要产生一些数据,需要临时性存放起来,方便取用。...xxx,aaa,ccc这种 变量名) 变量名只能包含字母数字字符以及下划线(A-A,0-9和_),不能以数字开始,但是数字可以夹在变量名中间和结尾 PHP没有声明变量命令,变量在你第一次赋值给它时候就被创建了...> PHP是一门弱类型语言 不必向PHP声明该变量数据类型,PHP会根据变量值,自动把变量转换为正确数据类型 PHP变量作用域 变量作用域是脚本变量可被引用,使用部门 PHP有四种不同变量作用域...除了函数外,全局变量可以被脚本任何部分访问,要在一个函数访问一个全局变量,需要使用 global关键字。 在 PHP函数内部声明变量是局部变量,仅能在函数内部访问 <?

25710

ES6变量解构赋值, 解放我们双手,实现变量批量赋值

补充一下: 在给予变量默认值时, 只有当没有对应值与之匹配时或者与之匹配是 undefined 时, 才会将默认值赋值给自己, 但是如果与之匹配是 null , 则默认值不起作用, 最后会将 null...: '男'} 就只需要一行代码就可以将对象三个值都取出来并赋值给三个变量。...但是,我们在使用对象解构赋值时候必须要注意,等号左边顺序是随意, 系统会根据你变量名, 优先去对象寻找与你对象名相同键, 将它赋值给这个变量。...这么一说, 我们变量名就必须要跟对象健名一样了吗?...,然后放到一个数组赋值给等号左边变量 结束语 好了, 关于变量解构赋值知识就将这么多,其实还有一些相关知识,例如数值和布尔值解构赋值、函数参数解构赋值等, 但我觉得都不常用,所以就没给大家细讲

1.2K10

PHP

PHP PHPprivate、public、protected区别详解 public表示全局,内部和外部子类都可以访问 private表示私有的,只有本类内部可以使用 protected...PHP new:实例化对象 使用属性和方法不像使用变量和函数那样简单,首先要对进行实例化 实例化对象 将实例化成对象非常容易,只需要使用new关键字并在后面加上一个和类同名方法(*...,只能通过对象引用来访问对象成员 使用 -> 来完成对象成员访问 变量名 = new (参数); //实例化一个 变量名 -> 成员属性 = 值; //为成员属性赋值 变量名 ->...$student = new web(); //进行实例化 $student -> name = 'xxx'; // 给web变量student变量name赋值为xxx $student ->...url = 'xxx'; // 给web实例化后变量studenturl赋值为xxx echo $student -> name; echo $student -> url; ?

6310

PHP

注意: 在继承父子类,默认子类是不会实现父构造函数和析构函数,要执行父构造函数和析构函数,我们可以使用parent关键字在子类构造函数和析构函数体显式调用parent::__construct...2、子类不能重新定义父static关键字修饰变量属性或者方法,除非你将它们定义为static成员。...3、static方法或者变量,$this 变量是不可用,如果你要使用同一其他定义为static变量或者方法,可以使用self::(变量名|方法名)来访问static成员。...> 正确输出结果: foo foo foo foo foo 六、作用域分辨运算符(::) 在没有声明任何实例情况下使用::来访问函数或者基函数和变量。...PHP5引入了abstract和方法概念。

6.7K20

java为final变量赋值几种方式

参考链接: 在Java为静态最终static final变量分配值 java为final变量赋值几种方式  前言   使用final修饰变量,很多人第一时间想到就是不可变。...然后以为变量必须得在声明时候就为其赋初始值,其实不然,本文将详细讲解java中使用final修改变量赋值问题。 ...被final修饰变量几种赋值方式  1、被final修饰变量有三种赋值方式。 2、被final static修饰变量有两种赋值方式。 ...储备知识:在加载加载顺序我们应该都知道,静态代码块->构造代码块->构造方法  精华:   当被加载进内存时候,这个属性只是声明了一个变量,并没有给分配内存空间,只有当在被实例化时候才分配了内存空间...}  当你发现一个变量被final修饰但没被赋值,那么可以判断出它肯定会在构造函数里被赋值

2.3K10

Python之关于变量两种赋值区别详解

输出结果:可以看到,只有p1TAG,被赋值成了新”damn it” hello hello hello damn it hello hello 如何将所有对象引用变量赋值成同一个值呢?...相当于一个命名空间,object.attr 就是一个向上爬属性过程 属性:__dict__ , __class__ , __bases__ __dict__: 实例或或模块属性 , __class...__ 实例对应对象,__bases__(元组):父/超 爬属性: def findAttr(obj , attr): if attr in obj....() 时,object被传入method(self)第一个参数.Class.method(object) 需要手动传入 命名空间: x = 0 def print_global(): print...(): x = 1 def nested(): nonlocal x x = 2 #在闭包改变本地变量, 如没有nonlocal x , 在又新增一个本地变量 以上这篇Python之关于变量两种赋值区别详解别就是小编分享给大家全部内容了

1.3K20

【小家java】java为final变量赋值几种方式

【小家java】静态代码块、构造代码块、静态变量执行顺序和继承逻辑 和对final修饰变量内存特点有所了解。【小家java】final修饰变量真的不可变吗?...精华部分: 当被加载进内存时候,这个属性并没有给其分配内存空间,而只是定义了一个变量,只有当被实例化时候这个属性才被分配内存空间,而实例化时候同时执行了构造函数,所以属性被初始化了,也就符合了当它被分配内存空间时候就需要初始化...声明时不赋值,在constructor赋值(最常用方式) 声明时不赋值,在构造代码块赋值 如果一个非final成员变量在定义时候没有赋值,那么它只可能在构造函数里被赋值了(不考虑构造代码块情况...我们得出结论:当你发现一个变量被final修饰但没被赋值,那么可以判断出它肯定会在构造函数里被赋值。...在静态代码块里赋值 最后 final变量会经过JVM进行优化处理,所以平时使用过程建议使用final变量。但更建议读者先重点了解下final变量在JVM内存结构后,再频繁使用为佳

2.6K40

《ECMAScript 6 入门》【二、变量解构赋值】(持续更新……)

一、数组解构赋值举个例子给多个变量赋值写法:var a =1;var b =2;var c =3;需要写多个变量特别麻烦,我们先使用以前简化方法。...var a=1,b=2,c=3;现在es6引入了解构,我们可以使用数组解构赋值来更简便进行赋值。1、完全解构let [a,b,c]=[1,2,3];可以从数组中提取值,按照对应位置,对变量赋值。...本质上,这种写法属于“模式匹配”,只要等号两边模式相同,左边变量就会被赋予对应值。...,d,c]=[1];这种情况也一样let [a,…b,c]=[1];// Uncaught SyntaxError: Rest element must be last element如果解构不成功,变量值就等于...在第4种情况,我们把…b位置放在中间,就会出错,而放在末尾只是打印空数组。我们再举几个实际用到例子,比如说交换值。以前交换值必须再声明定义一个变量,就像这样。

97320

PHPTrait详解

通俗来讲, Trait不是,无法直接使用new关键词来创建对象。 传统PHP是单一继承模式,即每个只能继承一个父。 Trait出现让PHP可以继承多个“父”。...; } } Trait tDemo2 { public function fun2() { return __METHOD__; } } 接下来使用一个class 来继承上面的自定义.../ 调用父方法 echo $obj->cfun(); // cDemo::cfun 这个是父cDemo定义方法 // 调用Trail方法 echo $obj->fun1(); // tDemo1...::fun1 echo $obj->fun2(); // tDemo2::fun2 二、注意事项 优先级关系 本类方法 > Trait方法 > 父方法 当一个继承了多个Trail,...原文链接:https://blog.csdn.net/weixin_42748455/article/details/111168641 未经允许不得转载:肥猫博客 » PHPTrait详解

62160
领券