php基础---变量的传值方式

下面我们就来 说一下变量的传值方式:

值传递又称拷贝传值,就是将一个变量的值复制一个给另外一个变量。此时二个变量的值相同,但是此时的二个变量又是互相独立的存在,操作其中任何一个变量,另外一个变量都不会受到其影响。

引用传递又称为地址传递,就是将一个数据的数据空间地址拷贝一个传递给另一个变量,此时二个变量的数据空间地址都指向一个地址,改变其中一个值另外一个值也会受到影响而改变。如果需要将值传递改变成引用传递,要在变量前面加上一个&符号,有此符号那么就是说明他就是引用传递。

引用赋值 和 传值赋值
我们先来看传值赋值:

注意::::
以下的 变量符号(盗了)谐音 可能没有显示出 均为key什么东西的

    $a = 9;
    $b = 10;

如果是新手 可能会对下面的‘ = ’ 产生误解 其实他的意思是:赋值

    $a = $b;

那下面你可能会有个疑问?? 把变量a 赋值给 变量b是怎样的一个过程??
那我下面就来说一下 :
过程:把 b b的值取出来 再把值 放到 a的空间里去 也就是我们说的赋值给 a a 之后 a 和 $b两者 还是没有任何关系 他们各有各的内存空间。
最后我们输出 $a:echo $a;//10

好啦 到这里我们先休息一会 或者米西米西两口 smok(英语不好 见谅 哈哈)

好啦 好啦 我们继续

引用赋值:
先看代码:

    $c = 99;
    $d = 999;

下面这一行发生了什么:
意思就是 $c 和 $d 指向的是同一个内存空间

$c = &$d;  //999

然后 我继续修改 d d的值: ` d = 9999;`

下面的值是多少?
$c =& $d; //9999

====================仔细看下面一提:

    unset($d);//销毁d
    echo "............", $d, "............";//结果是几?

到这里 可能你心里一百万个 mmp 卧槽 还可以这样销毁???

下面我就来说一下:

愿意很简单 因为$c $d两个变量指向的是同一个地址
$d销毁了 $c没销毁
变量有一个机制 当某段地址存的值 又一个变量指向他的时候 他就不会被回收

再来继续 别歇着:
比如:张三======>>饭桌<<=======李四
张三转一下盘子 在李四看来 座子上的盘子也变了 c c , d的值全变了
现在 unset($d) 就像张三走了 但是李四没有走 服务员会清理桌子吗?
答:不会,因为还有一个人在桌子面前

这次你心里一下子 恍然大悟 思高一代(日文)

那我们继续:
还继续?
我的回答是:是的!
一鼓作气 嘛
如果李四也走了 那么这间房子 也就为空了
所以:unset($c);这是结果才是 null

` if ($c . is_null()) {
echo “c为空了”;
} else {
echo “c不为空”, gettype©;
}

echo $c, "--------", $d;`

下面全部 笔记::::

<?php
    /**
     * Created by PhpStorm.
     * User: gewu
     * Date: 2020/2/12
     * Time: 14:17
     */
//引用赋值 和 传值赋值
//传值赋值
    $a = 9;
    $b = 10;

//如果是新手 可能会对下面的  =  号产生误解  他的意思是 赋值
    $a = $b;

//过程:把$b的值取出来 在把值 放到$a的空间里去  即赋值给$a
//之后 $a $b两者 还是没有任何关系  各有各的内存空间

    echo $a;//10


//引用赋值

    $c = 99;
    $d = 999;


//下面这一行发生了什么
//意思就是 $c 和 $d 指向的是同一个内存空间

    $c = &$d;  //999


//然后 我继续修改 $d的值
    $d = 9999;

//下面的值是多少?
    $c =& $d;  //9999


//============仔细看下面一提:

    unset($d);//销毁d
    echo "............", $d, "............";//结果是几?

//愿意很简单 因为$c $d两个变量指向的是同一个地址
//$d销毁了  $c没销毁
//变量有一个机制 当某段地址存的值 又一个变量指向他的时候 他就不会被回收
//比如:张三======>>饭桌<<=======李四
//张三转一下盘子 在李四看来 座子上的盘子也变了 $c $d的值全变了
//现在 unset($d)  就像张三走了  但是李四没有走 服务员会清理桌子吗?
//答:不会,因为还有一个人在桌子面前


//如果李四也走了  那么这间房子 也就为空了
//所以:

    unset($c);
//这是结果才是  null

    if ($c . is_null()) {
        echo "c为空了";
    } else {
        echo "c不为空", gettype($c);
    }


    echo $c, "--------", $d;

发布了3 篇原创文章 · 获赞 1 · 访问量 48

猜你喜欢

转载自blog.csdn.net/qq_39469700/article/details/104523149
今日推荐