`

PHP变量与作用域

阅读更多

本文总结下PHP变量与作用域

 

【内容列表】

(一)PHP变量规则

(二)创建 / 声明变量

(三)弱类型语言

(四)变量作用域

(五)作用域

  ①局部和全局作用域;②global关键字;③Static 作用域;④参数作用域

 

【详解】

(一)PHP变量规则:

  ①变量以$开始;

  ②区分大小写,$a与$A是不同的两个变量;

  ③必须以字母或者下划线开始;

  ④不能包含空格,只能包含字母数字字符以及下划线(A-z、0-9 和 _ )

   (二)创建 / 声明变量:

  PHP 没有声明变量的命令,变量在您第一次赋值给它的时候被创建

  注意:当赋一个文本值给变量时,请在文本值两侧加上引号,例$txt="Hello world!";

   (三)弱类型语言

   创建 / 声明变量时,不必向 PHP 声明该变量的数据类型。PHP 会根据变量的值,自动把变量转换为正确的数据类型

   在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称

    (四)变量作用域

   变量的作用域是脚本中变量可被引用/使用的部分

   PHP 有四种不同的变量作用域:local本地,global全局,static静态,parameter参数作用域

    (五)作用域

  ①局部和全局作用域

   在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。

在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:

<?php 
$x=5; // 全局变量 
function myTest() { 
    $y=10; // 局部变量 
    echo "<p>测试函数内变量:<p>"; 
    echo "变量 x 为: $x"; 
    echo "<br>"; 
    echo "变量 y 为: $y"; 
}  
myTest(); 
echo "<p>测试函数外变量:<p>"; 
echo "变量 x 为: $x"; 
echo "<br>"; 
echo "变量 y 为: $y"; 
?>

   当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为 $x 变量在函数外定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。

   注意:可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内

 

  ②global关键字

    用于函数内访问全局变量,在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字

<?php
$x=5;
$y=10;
function myTest(){
    global $x,$y;
    $y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>

   PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

   上面的实例可以写成这样:

<?php
$x=5;
$y=10; 
function myTest(){
    $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 
myTest();
echo $y;
?>

 关于global与$GLOBALS['']的区别及用法,我在后面文章里做了总结

 

  ③Static 作用域

   当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。

   然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。

  要做到这一点,要在第一次声明变量时使用 static 关键字:

<?php
    function test(){
        static $x = 5;
        echo $x;
        $x++;
    }
    test();
    test();
    test();
?>

   注释:该变量仍然是函数的局部变量

 

  ④参数作用域

   参数是通过调用代码将值传递给函数的局部变量,参数是在参数列表中声明的,作为函数声明的一部分:

<?php
function myTest($x){
    echo $x;
}
myTest(568);
?>

 

 

 

 

 

 

 

 

.

分享到:
评论

相关推荐

    PHP函数 -变量的作用域.ppt

    * PHP函数 -----变量的作用域 课程内容 局部变量 全局变量 静态变量 变量的作用域 变量需要先定义后使用,但这并不意味着变量定义后就可以随便使用,只有在它的作用范围中才可以被使用,这个作用范围称为变量的作用...

    php变量作用域的深入解析

    PHP中的变量作用域是指一个变量能够在程序的哪个部分被访问和修改。变量的作用域是由它们的定义位置决定的,通常分为局部作用域和全局作用域两大类。 局部变量是指在函数内部定义的变量,它只在该函数内部可见,即...

    PHP中的变量作用域

    #### 三、PHP变量作用域概述 PHP中的变量作用域主要包括以下几种类型: 1. **全局作用域**:在整个脚本文件范围内都可被访问的变量。 2. **局部作用域**:仅在特定区域内可被访问的变量,如在函数内部定义的变量。 ...

    在PHP中,变量的作用域决定了变量在何处可用 了解变量的作用域对于编写高效、安全的代码非常重要

    在PHP中,变量的作用域决定了变量在何处可用。了解变量的作用域对于编写高效、安全的代码非常重要。

    浅析php变量作用域的一些问题

    PHP变量作用域是编程时必须理解的关键概念,特别是在从其他语言如C转换到PHP时。PHP的变量作用域规则与C语言有所不同,可能导致初学者在处理全局变量和局部变量时遇到困扰。 首先,PHP中的变量主要分为四种作用域:...

    PHP变量的定义及作用域

    PHP有四种主要的变量作用域: 1. **局部作用域(Local Scope)**:变量在函数内部定义时,它就是局部的。这些变量只在该函数内部可用,一旦函数执行完毕,它们就会被销毁。 ```php function myFunction() { $...

    PHP变量作用域(全局变量&局部变量)&global&static关键字用法实例分析

    总结一下关于PHP变量作用域和`global`、`static`关键字的关键知识点: 1. 全局变量:定义在函数外部,作用域从定义处到文件结束,可以通过`global`关键字在函数内部访问。 2. 局部变量:在函数内部定义,仅在函数...

    PHP的变量类型和作用域详解

    PHP中的变量作用域主要有四种: - **全局(Global)**:在函数或类外部定义的变量具有全局作用域,可以在整个脚本中被访问,除非在函数内部使用`global`关键字显式引用。 - **局部(Local)**:在函数内部定义的...

    php闭包中使用use声明变量的作用域实例分析

    在这个例子中,`getClosure`函数接受一个参数`$i`,然后在闭包内部将这个参数与当前时间拼接后赋值给闭包作用域内的同名变量`$i`。之后,这个闭包函数通过`use($i)`将外部的`$i`变量引入到其内部作用域中。这意味着...

    PHP经典实例--变量

    3. **变量作用域**:PHP有四种变量作用域:局部(local)、全局(global)、静态(static)和超全局(superglobal)。局部变量只在定义它的函数内部有效,而全局变量在整个脚本中都可访问。使用`global`关键字可以...

    浅谈php中include文件变量作用域

    PHP中的变量作用域主要分为局部作用域和全局作用域。局部变量只能在声明它的函数内部使用,而全局变量可以在函数外部或在其他函数内通过global关键字声明后使用。然而,当涉及include时,作用域的规则又会有新的变化...

    浅谈PHP变量作用域以及地址引用问题

    ### PHP变量作用域 在PHP中,变量的作用域指的是程序中可以访问该变量的区域。主要有三种类型的作用域:局部变量、全局变量和静态变量。 1. **局部变量**:这是在函数内部声明的变量,其生命周期仅限于函数的执行...

    浅析php中常量,变量的作用域和生存周期

    在PHP编程语言中,理解和掌握变量、常量以及它们的作用域和生存周期是至关重要的。本文将深入浅出地分析这些概念。 首先,PHP中的变量是动态类型,意味着你无需在声明时指定变量的类型。变量以"$"符号开头,如 `$...

Global site tag (gtag.js) - Google Analytics