首頁 > 後端開發 > PHP問題 > 你知道php變數有哪些設定值的方式嗎

你知道php變數有哪些設定值的方式嗎

青灯夜游
發布: 2023-03-11 22:48:02
原創
3505 人瀏覽過

在之前的文章中我们介绍了使用PHP函数检测变量数据类型的方法,有需要的可以点击链接查看→《教你使用PHP函数来检测变量的类型》。这次我们来聊聊变量赋值,介绍一下在PHP中怎么给变量传值,一起来学习下。

首先我们需要了解一下变量,这样才能更好的了解变量的赋值方式。

变量通俗的来说是一种容器,是临时存储值的容器,它可以储存数字、文本、或者一些复杂的数据等;这些数据,就是“变量值”。且根据变量类型不同,容器的大小不一样,存放的数据大小也是不相同的。

因为PHP是一种弱类型的语言,所以使用变量前不用提前声明,在第一次赋值时会被自动创建。PHP中的变量用一个美元符号“$”后面跟变量名来表示(注:变量名是区分大小写的)。

例:

<?php
    $name = '西门庆';
    $_age = 25;
    $sex = '男';        
    echo "姓名:{$name},年龄:{$_age}, 性别:{$sex}";
?>
登入後複製

PHP变量名并不是可以随意定义的,它遵循一定的命名规则,通常是以字母(A~z)或下划线(_)开头,由字母、数字(0~9)、下划线组成。

例如下面的变量声明就是错误的:

$1sex = '男';  // 错误,不能以数字开头
登入後複製

一般PHP变量在声明时,就进行了赋值操作,下面我们就来了解一下PHP变量的赋值方式。

PHP中有两种传值方式,分别为传值赋值引用赋值

1、传值赋值

“传值赋值”是PHP中默认的传值方式,可以像上文那样使用“=”运算符直接将值赋给变量

<?php
    $a = 1; 
?>
登入後複製

也可以将一个变量的值,赋予给另一个变量。我们看看下面这个例子:

<?php
$a = 100;
$b = $a;    // 将$a的值复制一份,传给$b
echo '$a = '.$a;
echo '<br> $b = '.$b;
?>
登入後複製

输出结果:

$a = 100
$b = 100
登入後複製

需要注意的是:赋予变量值的方式,其实是将一个变量的值,“复制”一份,再传给另一个变量。本质上这两个变量是相互独立的,因此改变其中一个变量的值,将不会影响到另外一个变量。看看下面这个例子:

<?php
$a = 100;
$b = $a;    // 将$a的值复制一份,传给$b
$a = 200;   // 重新为 $a 赋值
echo '$a = '.$a;
echo '<br> $b = '.$b;
?>
登入後複製

我们来看看输出结果:

$a = 200
$b = 100
登入後複製

但有时我们就需要,改变其中一个变量的值,另外一个变量也跟着改变,这样怎么办?那就需要使用“引用赋值”了。

2、引用赋值

“引用赋值”简单来说就是:新的变量引用了原始的变量。它会将一个变量的内存地址,“复制”一份,传给另一个变量。

这也就意味着,两个变量是有关联的,改变了新的变量的值将影响到原始的变量的值,反之亦然。

“引用赋值”和“传值赋值”差不多,只是多了一步:在需要在被引用的变量(源变量)前加上“&”符号(C语言中称之为取地址符)。

<?php
$a = 100;
$b = &$a;     // 将$a的地址复制一份,传给$b
$a = 200;   // 重新为 $a 赋值
echo '$a = '.$a;
echo '<br> $b = '.$b;
?>
登入後複製

通过取地址符&,变量$a和变量$b的值指向了同一个内存地址,当我们修改其中一个变量的值时,另一个变量的值自然而然的随之被改变。我们来看看输出结果:

$a = 200
$b = 200
登入後複製

注:只有有名字的变量才可以引用赋值。

<?php
$foo = 25;
$bar = &$foo;      // 合法的赋值
$bar = &(24 * 7);  // 非法; 引用没有名字的表达式
?>
登入後複製

(24*7)这个表达式中因为没有保存在变量中,所以没有明确的内存地址,通过取地址符去获取在内存中存储的地址是不可取的。我们来看看输出结果:

你知道php變數有哪些設定值的方式嗎

好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

最后给大家推荐一个PHP数组的免费视频教程:从0开始进入PHP的世界,快来学习吧!

以上是你知道php變數有哪些設定值的方式嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板