Heim >Backend-Entwicklung >PHP-Problem >Wissen Sie, wie man Werte für PHP-Variablen festlegt?
在之前的文章中我们介绍了使用PHP函数检测变量数据类型的方法,有需要的可以点击链接查看→《教你使用PHP函数来检测变量的类型》。这次我们来聊聊变量赋值,介绍一下在PHP中怎么给变量传值,一起来学习下。
首先我们需要了解一下变量,这样才能更好的了解变量的赋值方式。
变量通俗的来说是一种容器,是临时存储值的容器,它可以储存数字、文本、或者一些复杂的数据等;这些数据,就是“变量值”。且根据变量类型不同,容器的大小不一样,存放的数据大小也是不相同的。
因为PHP是一种弱类型的语言,所以使用变量前不用提前声明,在第一次赋值时会被自动创建。PHP中的变量用一个美元符号“$
”后面跟变量名来表示(注:变量名是区分大小写的)。
例:
<?php $name = &#39;西门庆&#39;; $_age = 25; $sex = &#39;男&#39;; echo "姓名:{$name},年龄:{$_age}, 性别:{$sex}"; ?>
PHP变量名并不是可以随意定义的,它遵循一定的命名规则,通常是以字母(A~z)或下划线(_)开头,由字母、数字(0~9)、下划线组成。
例如下面的变量声明就是错误的:
$1sex = &#39;男&#39;; // 错误,不能以数字开头
一般PHP变量在声明时,就进行了赋值操作,下面我们就来了解一下PHP变量的赋值方式。
PHP中有两种传值方式,分别为传值赋值和引用赋值。
1、传值赋值
“传值赋值”是PHP中默认的传值方式,可以像上文那样使用“=
”运算符直接将值赋给变量
<?php $a = 1; ?>
也可以将一个变量的值,赋予给另一个变量。我们看看下面这个例子:
<?php $a = 100; $b = $a; // 将$a的值复制一份,传给$b echo &#39;$a = &#39;.$a; echo &#39;<br> $b = &#39;.$b; ?>
输出结果:
$a = 100 $b = 100
需要注意的是:赋予变量值的方式,其实是将一个变量的值,“复制”一份,再传给另一个变量。本质上这两个变量是相互独立的,因此改变其中一个变量的值,将不会影响到另外一个变量。看看下面这个例子:
<?php $a = 100; $b = $a; // 将$a的值复制一份,传给$b $a = 200; // 重新为 $a 赋值 echo &#39;$a = &#39;.$a; echo &#39;<br> $b = &#39;.$b; ?>
我们来看看输出结果:
$a = 200 $b = 100
但有时我们就需要,改变其中一个变量的值,另外一个变量也跟着改变,这样怎么办?那就需要使用“引用赋值”了。
2、引用赋值
“引用赋值”简单来说就是:新的变量引用了原始的变量。它会将一个变量的内存地址,“复制”一份,传给另一个变量。
这也就意味着,两个变量是有关联的,改变了新的变量的值将影响到原始的变量的值,反之亦然。
“引用赋值”和“传值赋值”差不多,只是多了一步:在需要在被引用的变量(源变量)前加上“&
”符号(C语言中称之为取地址符)。
<?php $a = 100; $b = &$a; // 将$a的地址复制一份,传给$b $a = 200; // 重新为 $a 赋值 echo &#39;$a = &#39;.$a; echo &#39;<br> $b = &#39;.$b; ?>
通过取地址符&,变量$a和变量$b的值指向了同一个内存地址,当我们修改其中一个变量的值时,另一个变量的值自然而然的随之被改变。我们来看看输出结果:
$a = 200 $b = 200
注:只有有名字的变量才可以引用赋值。
<?php $foo = 25; $bar = &$foo; // 合法的赋值 $bar = &(24 * 7); // 非法; 引用没有名字的表达式 ?>
在(24*7)
这个表达式中因为没有保存在变量中,所以没有明确的内存地址,通过取地址符去获取在内存中存储的地址是不可取的。我们来看看输出结果:
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
最后给大家推荐一个PHP数组的免费视频教程:从0开始进入PHP的世界,快来学习吧!
Das obige ist der detaillierte Inhalt vonWissen Sie, wie man Werte für PHP-Variablen festlegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!