• PHP学习心得(六)——变量


      PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。$this 是一个特殊的变量,它不能被赋值。PHP 也提供了另外一种方式给变量赋值:引用赋值,将一个 & 符号加到将要赋值的变量前(源变量)

      未初始化的变量具有其类型的默认值 - 布尔类型的变量默认值是 FALSE,整形和浮点型变量默认值是零,字符串型变量默认值是空字符串或者数组变量的默认值是空数组。建议初始化,isset() 语言结构可以用来检测一个变量是否已被初始化。

      PHP 提供了大量的预定义变量。

      任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。例如:

     1 <?php
     2 $a = 1; /* global scope */
     3 
     4 function Test()
     5 {
     6     echo $a; /* reference to local scope variable */
     7 }
     8 
     9 Test();
    10 ?>

    这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值。。PHP 中全局变量在函数中使用时必须申明为global。

     1 <?php
     2 $a = 1;
     3 $b = 2;
     4 
     5 function Sum()
     6 {
     7     global $a, $b;
     8 
     9     $b = $a + $b;
    10 }
    11 
    12 Sum();
    13 echo $b;
    14 ?>

    以上脚本的输出将是“3”。在函数中申明了全局变量 $a 和 $b,任何变量的所有引用变量都会指向到全局变量。

      在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组。

     1 <?php
     2 $a = 1;
     3 $b = 2;
     4 
     5 function Sum()
     6 {
     7     $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
     8 }
     9 
    10 Sum();
    11 echo $b;
    12 ?>

    $GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。

    静态变量

      变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。

     

    可变变量

    一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。

    <?php
    $a = 'hello';
    ?>
    <?php
    $$a = 'world';
    ?>
    <?php
    echo "$a ${$a}";
    ?>

    两个变量都被定义了:$a 的内容是“hello”并且 $hello 的内容是“world”。

    将可变变量用于数组,必须解决一个模棱两可的问题。当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]

  • 相关阅读:
    模板模式
    简单实用的代理模式
    享元模式
    外观模式(人人都懂的设计模式)
    设计模式之组合模式,温故而知新。
    .net设计模式之装饰模式
    全选、反选
    There is a cycle in the hierarchy解决
    JSONObject、JSONArray
    JsonMessageView工具类
  • 原文地址:https://www.cnblogs.com/wyb-cd/p/3636961.html
Copyright © 2020-2023  润新知