给李书记点个赞吧
Php变量详解

Php变量详解

作者:李书记php 时间:2016-11-22 分类:学习php 评论:2 条 浏览:1285

目前很多phper针对变量很多都理解不清楚,只知道php变量,但是变量分为哪些,今天李书记就给大家分析做一个总结吧,变量的各种形式今天由于时间有限,变量部分会分为两天的文章去分析和讲解,希望phper们能有所收获。

        基本理解

变量可以理解为只是一个代表一定存储空间及其中的数据的一个“标识符”——也就是一个名字。

  $v1 = 1; 这一行代码,图示如下:

Php变量详解

  这表明,使用该变量,就是在使用该数据空间的数据值!比如:
  echo $v1; ///输出的是数据1
  $v2 = $v1 + 3; //此时,其实进行的是1+3的计算!
  使用形式:每个变量名前面必须以$开头。
  定义形式:php中,不支持“单纯定义”一个变量,而是,在第一次一个变量赋值的时候,就算是定义变量!

  变量的基本操作只有4个操作:

  变量赋值:

等号(=)的左边放变量名,右边放“数据”,就是赋值;

  $v1 = 1;

  变量取值:

任何需要一个数据的语句中使用一个变量,此时就是指从该变量取得该变量的值——取值;

概括来说,大约有如下情形:

  echo $v1; //取出v1的值并输出
  $v2 = $v1; //取出v1的值并给其他变量赋值;
  $v2 = $v1 + 3; //取出v1的值并与3进行运算!
  $v2 = round( $v1 ); //取出v1的值并并使用函数round()对其进行四舍五入运算

  判断isset(变量名):

作用:判断该变量是否存在,或该变量是否有数据值!存在或有数据值,就是true,否则就是false

<?php 
    $v1 = isset($s1);//判断$s1是否存在,结果是false
    $s2 = 2;
    $v2 = isset($s2);//true
    $s3 = false;
    $v3 = isset($s3); //true
    $s4 = "";
    $v4 = isset($s4); //true
    $s5 = null;
    $v5 = isset($s5); //false
 ?>

  删除unset(变量名):

含义:删除一个变量,并不是指将该变量从程序中删掉,而是,“断开”该变量名跟该变量原有的数据值之间的“引用关系”(联系)!,此时,会有这样的结果:

1,该变量名已经不指向(引用)任何数据了,则此时其isset()判断的结果就是false

2,该数据(可能)没有任何变量指向它了,就成为“无法使用的数据”——通常就被自动回收了

删除unset(变量名)

  $v1 = 1;
  unset($v1);
  $s1 = isset($v1); //false

  变量命名规则基本规则——保证程序的正确性

以字母或下划线开头

后跟任意数量(含0个)的字母,数字和下划线

行业规则——保证程序的可读性

  有3种常见的命名法:

  1,骆驼命名法:首单词小写,其后每个单词首字母大写

举例:$name $myName $myFatherName

  2,帕斯卡命名法:每个单词首字母大写

举例:$Name $MyName $MyFatherName

  3,下划线分割法:每个单词小写,并且之间用下划线分开

举例:$name $my_name $my_father_name

  变量的传值方式

1,变量的传值方式,是指“一个变量,传给另一个变量”的内部细节形式——单对单;

2,变量的传值方式,只有2中:值传递,引用传递;

  值传递

$v1 = 1;

$v2 = $v1; //这就是值传递

简单理解:将$v1的值取出来(注意:$v1中的值还在),然后再用该值给$v2赋值。

变量命名规则

  可见,值传递,就是变量v1的值进行了复制,然后在给另一个变量v2赋值。

注意:

1这两个变量此时是值相等的;

2这两个变量又是互相独立的——互不影响;

即$v1 = 10; 则echo $v2 ;//输出1

  引用传递

php中,只有一种语法形式可以实现变量的引用传值方式:&符号。

举例如下:

$m1 = 1;

$m2 = & $m1; //引用传值方式

简单理解: 将变量$m1跟其数据值之间的“引用关系”,复制一份,再给予变量$m2,即,此时,变量$m2也同样具有跟原来数据的一个“引用关系”(指向关系);

引用传递

  结果是:

1,此时仍然有了2个变量,但只有一个数据值(数据空间),2个变量都共同指向该数据空间。

2,对其中任何一个变量的操作,其实都是在操作数据值(空间);

  代码对比演示:

<?php
    $v1 = 1;
    $v2 = $v1;    //值传递;
    $v1 = 10;
    echo "<br />v1 = $v1";//10
    echo "<br />v2 = $v2";//1
    unset($v1);        //断开$v1跟其数据的关系
    $r1 =  isset($v2);    //??
    echo "<br />"; var_dump($r1);//true
    echo "<hr />";
    $m1  =  1;
    $m2  =  & $m1;        //引用传值方式
    $m1 = 10;
    echo "<br />m1 = $m1";//10
    echo "<br />m2 = $m2";//10
    unset($m1);        //断开$v1跟其数据的关系
    $r2 =  isset($m2);    //??
    echo "<br />"; var_dump($r2);//true
?>

  可变变量:

  $s1 = “abc”; //这是一个变量,里面存储的是字符串”abc”
  $abc = 10; //
  echo $$s1; //???,输出10

  理解:

1,在php中,一个”$”后面,总是跟着一个变量名!

2,这里,echo输出的这个变量(以第一个$为标识)的名字是:$s1, 即”abc”

3,所以,这里输出的是 $abc, 即 10

4,这种连续出现“$”的变量形式,就是所谓的“可变变量”;

<?php
    $s1 = 'abc';        //这是一个变量,里面存储的是字符串”abc”
    $abc  =  10;        //
    echo   $$s1;        //???,输出10
    //以下演示“可变变量”的灵活性:
    //所谓可变变量,其实就是变量的名字是可以“动态变化”以获取不同的数据值
    $v1 = 1;
    $v2 = 12;
    $v3 = 33;
    $v4 = 44;
    $v5 = 115;
    //求这5个变量的和;
    //其他语言,只能“一个一个”加起来。
    $sum = 0;    //用于存储总和
    for($i = 1; $i <= 5; $i++){
        $v = "v" . $i;    //这里,结果其实只是一个“字符串”,比如"v1","v2"...
        $sum += $$v;
    }
    echo "<br />sum = $sum";
?>
  
  1. 增达网 2016-11-23 15:09 #1 回复TA

      男友第一次来我家,要和我亲热,这时我的猫跑了进来,男友要赶它,我连忙喊停:不要赶,它喜欢看!
      男友给了我一巴掌:你不是说你是第一次吗?

  2. 晓宇 2016-11-22 14:33 #2 回复TA

    学习了~

发表评论

电子邮件地址不会被公开。 必填项已用*标注