zoukankan      html  css  js  c++  java
  • PHP函数中的变量

    局部变量

    在函数内部声明的变量(包括函数的参数),只能在函数内部调用,这叫做局部变量,函数执行完毕后变量释放,在函数外部无法调用

    $weather = sunny;
    
    function demo ()
    {
        $weather = rainny;
        echo "Today is $weather";
    }
    
    demo (); //输出Today is rainny

    全局变量

    在函数外部声明的变量,可以在每个函数中使用(注意顺序问题:全局变量要声明在函数调用之前才可以使用),如果要在函数内部使用函数外部的变量,需要使用global关键字将外部变量引入

    $weather = sunny;
    
    function demo ()
    {
        global $weather; //引入外部变量weather
        $weather = rainny; //变量被重新赋值
        echo "Today is $weather";
    }
    
    demo (); //输出Today is rainny

    $weather = sunny;
    
    function demo ()
    {
        
        $weather = rainny; //局部变量
        global $weather;//全局变量被引入
        echo "Today is $weather";
    }
    
    demo (); //输出Today is sunny

    function demo ()
    {
        
        $weather = rainny; 
        global $weather;
        echo "Today is $weather";
    }
    
    $weather = sunny; //只要全局变量声明在函数调用之前都可以使用,否则不能被调用
    
    demo (); //输出Today is sunny

    常量

    常量则不同于变量,只要定义了,就可以直接在函数里使用,还有九个全局数组

    define("Content","hello world");
    $_POST['demo'] = 1;
    
    function demo ()
    {
        echo Content."<br>";
        echo $_POST['demo'];
    }
    
    demo ();//输出 hello world 和 1 

    静态变量

    在函数中声明静态变量,只在第一次调用时被声明,存在初始化静态段中,之后再继续调用会到初始化静态段中找,如果有,直接使用,而不会再重新被声明,与全局变量类似,不会再函数执行完毕后释放,而是在整个脚本执行完后释放

    function demo () //非静态变量,连续调用返回值永远是1
    {
        $a = 0;
        $a++;
        return $a."<br>";
    }
    
    echo demo ();
    echo demo ();
    echo demo ();

    function demo()
    {
        static $a = 0;  //静态变量:在函数中声明静态变量,只在第一次调用时被声明,存在初始化静态段中,之后再继续调用会到初始化静态段中找,如果有,直接使用,而不会再重新被声明,与全局变量类似,不会再函数执行完毕后释放,而是在整个脚本执行完后释放
        $a++;
        echo $a."<br>";
    }
    demo(); // 输出1
    demo(); // 输出2
    demo(); // 输出3

     

  • 相关阅读:
    Codeforces Round #648 (Div. 2) A~F题解
    2020杭电多校第四场 Go Running 最小点覆盖等于二分图最大匹配数
    2019徐州网络赛 M Longest subsequence 序列自动机
    后缀数组模板题总结
    2020 Multi-University Training Contest 1 . Fibonacci Sum 水题改编
    悬线法
    欧拉回路,欧拉路径
    LGV算法 CodeForces 348D + 牛客多校 A Monotonic Matrix
    Kattis mapcolouring(状压dp)
    mysql解决错误:ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
  • 原文地址:https://www.cnblogs.com/Itwonderful/p/5530480.html
Copyright © 2011-2022 走看看