PHP基础学习 - day 3

2021-05-15  本文已影响0人  飞牛在天
<?php
// 变量作用域
/**
1. local作用域
2. global作用域
3. static作用域
4. parameter作用域
*/

// local作用域,随着函数的结束而销毁。

function test() {
    // local scope
    $name = 'zhangsan';

    echo $name . PHP_EOL;
}
test();



// global scope定义,在函数外面定义

$name = 'lisi';

function test2() {
    // global变量 需要声明一下才可以访问
    global $name;
    echo 'name is ' . $name . ' in test2 function.' . PHP_EOL;
    // 修改全局变量
    $name = 'wangmazi';
}

function test3() {
    global $name;
    echo 'name is ' . $name . ' in test3 function.' . PHP_EOL;
}

test2();
test3();


// php内部会把所有的global变量,都存储在GLOBALS全局数组中,索引是global变量的名字
// 例如 global $name变量实际上是存储在$GLOBALS['name']中的。
echo 'global name = ' . $GLOBALS['name'] . PHP_EOL;

// static作用域, 在函数退出之后,再次调用时,static变量会记住上一次的值
// static仍然是一个局部变量,在外部无法访问到

function test4() {
    static $counter = 0;

    echo 'counter is ' . $counter . PHP_EOL;

    $counter = $counter + 1;
}



test4();

test4();

test4();

// static $counter是在test4 function内部定义的,属于局部变量,在函数外部无法访问
echo 'counter is ' . $counter . PHP_EOL;


// parameter scope
// $x和$y属于参数作用域,随着函数的结束而销毁。
function test5($x, $y) {

    echo 'parameter 1 is ' . $x . PHP_EOL;
    echo 'parameter 2 is ' . $y . PHP_EOL;
}

?>

上一篇下一篇

猜你喜欢

热点阅读