php变量赋值的方法有哪些

发布时间:2022-06-30 11:55:08 作者:iii
来源:亿速云 阅读:134

这篇文章主要介绍“php变量赋值的方法有哪些”,在日常操作中,相信很多人在php变量赋值的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php变量赋值的方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

php变量赋值有三种:1、传值赋值,将一个表达式的值赋予一个变量,语法例如“$a=表达式”;2、引用赋值,将另一个变量和当前的变量指向同一个地址,语法为“$a=&$b”;3、计数赋值,PHP和JavaScript中的对象默认传值方式都是采用计数赋值的。

本文操作环境:Windows10系统、PHP8.1版、Dell G3电脑

php变量赋值

传值赋值:

php变量其实就是一个地址的别名而已,如同$a就是一个内存中的地址的别名,比如是0x000011,$b就是另一个地址,$a = $b就是把0x000011地址内存里的数据取出来放到$b所指向的地址中,当unset一个变量以后,就会把这个变量名和地址之间的联系断掉,此时操作系统就会执行垃圾回收,把这个地址的数据清理掉。

引用赋值:

php的引用赋值就是把另一个变量和当前的变量指向同一个地址,当修改两个变量中的任何一个数值的时候都会造成两个数据的变化。

计数赋值:

和Javascript一样,对象都是采用计数赋值的,当$a = new object()以后,就会在栈上开一个变量$a,此时的$a的值是一个地址,指向堆上的一块内存,这块内存上边是这个对象的一个实例,当$b = $a以后就会使得$b中的值也是堆得内存的地址。此时如果你unset掉$a以后,只是把栈上的$a清理掉而已,堆上的内存依然存在,只有你把$b也unset掉,才会使得$a和$b都没办法指向到这个对象,此时这个对象就没有办法得到,在c语言里这个叫做内存泄露,在Java和C#里都有自动垃圾回收机制,这个泄露的内存都会被自动回收,php也是一样,也会在没有变量指向这个堆上的内存以后就会被自动回收掉。

1、传值赋值,例如$a=1,$b=$a等;

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]

知识扩展:

这三种赋值方式分别在什么场合下出现呢?

传值赋值一般在普通的原子变量以及数组时候就是传值赋值,引用赋值在你加上&作用符的时候就会生效,计数赋值在php中在资源文件和对象中存在。

什么是变量

变量通俗的来说是一种容器。根据变量类型不同,容器的大小不一样,自然能存放的数据大小也不相同。在变量中存放的数据,我们称之为变量值。

PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。在PHP中变量的命名规则通常是以字母或下划线开头,由字母、数字、下划线组成。变量名通常由声明变量所代表意义的英文单词组成。单词与单词之间通过_分隔,或者第一个单词首字母小写,之后每个单词首字母大写。这种命名方式我们称之为驼峰命名法。良好的命名规范有助于提高我们代码的可读性。

<?php
    $name = '屋脊猫';
    $_age = 1;
    $sex = '男';       
    echo "姓名:{$name},年龄:{$_age}, 性别:{$sex}";
    $1sex = '男';  // 错误,不能以数字开头
?>

变量的初始化是给变量设置一个默认值(或者是需要的值),初始化的过程中PHP会给变量分配存储空间以及将变量值所在存储空间地址保存在变量中。

到此,关于“php变量赋值的方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. php中变量赋值的方式有哪些
  2. Python变量的类型以及赋值的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:媒体查询是css3新增属性的吗

下一篇:JavaScript中数组的知识点有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》