PHP变量

作者: 简简天天 | 来源:发表于2018-09-06 14:17 被阅读0次

    为何输出10,而非100?全局变量和局部变量问题

    输出10

    <?php
    $num = 10;
    function abc($num){
        $num *= 10; // $num = $num * 10;
    return $num;
    }
    abc($num);
    echo $num; // 10
    

    输出100

    <?php
    $num = 10;
    function abc($num){
        global $num; // $GLOBALS['num'] *= 10;
        $num *= 10; // $num = $num * 10;
    return $num;
    }
    abc($num);
    echo $num; // 100
    

    输出1、b

    <?php
    function a($param){
        $param[0] = 3;
    }
    function b($param){
        $param->name = 'b';
    }
    class User{
        public $name = 'a';
    }
    
    $param1 = array(1,2,3);
    $param2 = new User();
    
    a($param1);
    b($param2);
    
    echo $param1[0]; // 1
    echo $param2->name; // b
    

    输出3、b

    <?php
    function a($param1){
        global $param1;
        $param1[0] = 3;
    
    }
    function b($param){
        $param->name = 'b';
    }
    class User{
        public $name = 'a';
    }
    
    $param1 = array(1,2,3);
    $param2 = new User();
    
    a($param1);
    b($param2);
    
    echo $param1[0]; // 3
    echo $param2->name; // b
    
    

    PHP变量

    PHP变量规则

    变量以 $ 符号开头,其后是变量的名称
    变量名称必须以字母或下划线开头
    变量名称不能以数字开头
    变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
    变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
    

    PHP 有三种不同的变量作用域:

    • local(局部)
    函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
    
    • global(全局)
    函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
    
    • static(静态)
      PHP global 关键词
    global 关键词用于访问函数内的全局变量。
    要做到这一点,请在(函数内部)变量前面使用 global 关键词
    

    PHP static 关键词

    通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
    要完成这一点,请在您首次声明变量时使用 static 关键词
    <?php
    
    function myTest() {
      static $x=0;
      echo $x;
      $x++;
    }
    
    myTest(); // 0
    myTest(); // 1
    myTest(); // 2
    

    相关文章

      网友评论

          本文标题:PHP变量

          本文链接:https://www.haomeiwen.com/subject/urnawftx.html