• php学习笔记-变量的作用域


    这个东西很难理解,但很重要,我觉得非常容易出错。

    PHP中的变量按照作用域分为有两种,一种是global,一种是local。

    函数内部声明的变量就叫local型变量,只能在函数内部被访问到。一句话,local型变量只能在函数内部定义以及引用。

    函数外部声明的变量叫global型变量,只能在函数的外部访问到(除了GLOBALS)。这种渣渣也能叫global,真是名不副实啊!我记得以前学习过的语言不是这个样子的,只要是global,函数外还是函数内都可以访问到的,但php就是这么难搞。

    我们看一个local的例子。

     1 <?php
     2 
     3 $name = 'hanmeimei';
     4 function getName(){
     5     echo $name;
     6 }
     7 
     8 getName();
     9 
    10 ?>

     运行结果显示$name这个变量没有被定义。是因为php解析器没有在getName函数内部找到$name这个变量的定义。为啥不去外面找去啊,如果没有特别的声明,函数内部引用到的变量只会在函数内部去找它的定义。

    那怎么才能访问到外面的name呢?

    我们看一个global的例子。

    1 <?php
    2 $name = "hanmeimei";
    3 function getName(){
    4     global $name;
    5     echo $name;        
    6 }
    7 getName();
    8 ?>

    这回就没有错误提示了,为什么呢?是因为在getName函数内部有一句global $name,它的意思是告诉PHP解析器$name这个变量的定义你得在函数外面找,然后就找到了$name的值是hanmeimei。变量前面的global使得$name这个global型变量的作用范围扩大到了getName函数内部。

    前面有句话:函数外部声明的变量叫global型变量,只能在函数的外部访问到,这是什么意思?

    1 <?php
    2 $name = 'hanmeimei';
    3 echo $name;
    4 ?>
  • 相关阅读:
    test6
    test4
    test3
    20165321 2017-2018-2《Java程序设计》课程总结
    20165321 实验五 网络编程与安全-2
    20165321 实验五 网络编程与安全
    实验四 Android开发基础
    20165321 实验三 敏捷开发与XP实践
    《深入理解计算机系统》第三章 程序的机器级表示学习
    《文献管理与信息分析》第二章
  • 原文地址:https://www.cnblogs.com/yfish/p/8452343.html
Copyright © 2020-2023  润新知