首页
学习
活动
专区
工具
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时必须用“:=赋值” 用户变量与数据库连接有关,在连接中声明的变量,在存储过程中创建了用户变量后一直到数据库实例接断开的时候

    9.2K41

    PHP中的变量

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

    29010

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

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

    1.3K10

    PHP中的类

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

    6.8K20

    PHP中的类

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

    7610

    java中为final变量赋值的几种方式

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

    2.5K10

    《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的位置放在中间,就会出错,而放在末尾只是打印空数组。我们再举几个实际用到的例子,比如说交换值。以前交换值必须再声明定义一个变量,就像这样。

    99320

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

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

    2.8K40

    PHP中类的自动加载

    PHP中类的自动加载 在之前,我们已经学习过Composer自动加载的原理,其实就是利用了PHP中的类自动加载的特性。在文末有该系列文章的链接。...PHP中类的自动加载主要依靠的是__autoload()和spl_autoload_register()这两个方法。今天我们就来简单的看一下这两个方法的使用。...$name . '.class.php'; } $autoA = new AutoA(); var_dump($autoA); 当我们实例化AutoA类时,当前的文件并没有这个类,也没有从其他文件中include...我们在__autoload()方法中只需要去include这个类所在的文件即可。 spl_autoload_register() 这个方法目前已经替代了上述魔术方法自动加载类的功能。...它是spl扩展库中的一个方法,spl扩展库现在已经默认集成在了PHP中,大家可以放心地直接使用。

    1.3K10

    理解PHP中的stdClass类

    或者,我们可以这么理解:stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。...同时,这个基类又有一个特殊的地方,就是没有方法。 凡是用new stdClass()的变量,都不可能会出现$a->test()这种方式的使用。...或者,我们可以又这么理解一下,正因为PHP5的对象的独特性,对象在任何地方被调用,都是引用地址型的,所以相对消耗的资源会少一点。在其它页面为它赋值时是直接修改,而不是引用一个拷贝。...所以,在PHP4的时候,都是这样使用: 复制代码 $myUser = & $user; 有人说,为什么不用数组呢?数组不是更方便吗?而且对于PHP这样的弱类型程序来说,用数组应该是最方便的。 确实。...数组在程序的使用中应该是最方便的,然而数组的每次被引用($a = $b),其实都是创建了一个副本,而且,数组被unset后,还是占用了内存(这个是听人说来的,我没有测试……也不知道怎么测试,如果有人知道

    1.1K90
    领券