php基础之变量

PHP变量

在PHP中声明变量必须是使用一个美元符号“$”后面跟变量名来表示,使用赋值符号“=”号给一个变量赋值。在声明变量时一定要按照一定规则,因为PHP中变量是严格区分大小写的,但是内置的函数和关键字以及自定义的函数是不区分大小写的。例如:echo,ECho,ECHO都是可以的。一个有效的变量名由字母或者下划线开头,后面任意数量的字母,数字,或者下划线。注:$this是一个特殊变量,它不能被赋值。
<?php
//变量名严格区分大小写
$z = 66;  //小写z赋值 66
$Z = 99;  //大写Z赋值 99

//关键字,函数不区分大小写。
echo $z;  //输出66
ECho $Z;  //输出99
var_dump($z); //输出int(66)
VAR_dump($Z); //输出int(99)

$this = 11;  //给$this赋值会报错



PHP可变变量

可变变量是说,一个变量的变量名可以动态的设置和使用。

<?php
    //PHP可变变量
    $a = 'hello_'; //通常变量的定义形式。注:此变量值应遵循变量名的命名规则。
    //可变变量是指可以将变量的值作为一个变量名来使用。
    $$a = 'word !'; //等同 $hello_ = "word!"

    echo $a;        //输出hello_
    echo $hello_;   //输出word !
    echo $$a;       //输出word !

可变变量还可以用于数组,只不过存在一个歧义问题。如果你写成 $ $a[1],就需要标识$a[1]是一个数组元素,还是要把$ $a当成一个数组,[1]是这个数组的索引。解决这个问题 可以使用${$a[1]}或是${$a}[1]来区分。 
访问类属性也可以通过可变属性名来访问。属性名从产生调用所在的变量访问范围内获取。

<?php
    class test{
        var $b = 'I am a variable.';
    }

    $t = new test();
    $baa = 'b';
    echo $t->$baa; //使用变量$baa的值作为属性名,等同于$t->b,输出I am a variable.

    $arr = array('a','b','c');
    echo $t->$arr[1]; //使用变量$arr[1]元素的值作为属性名,等同于$t->b,输出I am a variable.

可变变量产生的安全问题。
<?php

    function test(){
        echo 'test function';
    }

    $a = 'test';
    $a(); //作为函数执行。
    // "${${$test()}}"要是做为输入的内容的话,test()函数将被执行。
    $b = "${${test()}}"; //注:此处为双引号,PHP解析变量。

变量的引用赋值

变量默认是传值赋值。那也就是说,当一个变量的值赋予给另一个变量时,改变其中一个变量的值,不会影响到另一个变量的值。
PHP中提供一种引用赋值的方式。引用赋值是指使用不同的名字访问同一个变量内容。与C语言中的指针不同,C语言中的指针中存储的是变量的内容中的地址。

<?php
    $a = 'is a';
    $b = &$a; //将变量$a的引用赋值给$b 注:只有有名字的变量才可以引用赋值。

    echo $a; //输出is a
    echo $b; //输出is a

    $b = 'is b'; //改变变量$b的值,$a中的值也会改变。
    echo $a;//输出is b
    echo $b;//输出is b

    unset($b); // 使用unset()则不会导致所有引用变量消失,只是变量$b和$a相互取消关联。
    echo $a;//输出is b
 

PHP变量还是蛮有意思的,百度一圈,看了不少帖子,收获不少,才写了这一篇博客。呜,明天中秋节呢,中秋节快乐。晚安!








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值