函数中的php变量范围?

时间:2018-09-10 08:14:24

标签: php function scope

如何访问另一个函数中定义的函数中的变量?

例如:

<?php
    function a() {
        $fruit = "apple";

        function b(){
            $country="USA";
            // How can I here access to $fruit
        }

        // And how can I here access to $country  
    }
?>

2 个答案:

答案 0 :(得分:1)

您正在做的是一个非常糟糕的做法,因为不能以这种方式像JavaScript一样嵌套PHP的函数。在您的示例中,ab都只是全局函数,如果尝试调用a两次,则会出错。

我怀疑您想要的是这种语法:

function a() {
    $fruit = "apple";
    $country = null;

    $b = function() use ($fruit, &$country) {
        $country="USA";
        // How can I here access to $fruit
    };

    // And how can I here access to $country  
}

当然,您需要在$b()内部调用$a()

答案 1 :(得分:0)

u可以使用全局词。 尝试一下,告诉我是否可行。

<?php
        function a() {
            $fruit = "apple";

            $country=b();

            // And how can I here access to $country  
        }
            function b(){
    global $fruit;
                $country="USA";
                // How can I here access to $fruit
                return $country;
            }
    ?>

,但是你应该这样做

<?php
        function a() {
            $fruit = "apple";

            $country=b($fruit);

            // And how can I here access to $country  
        }
            function b($fruit){
                $country="USA";
                // How can I here access to $fruit
                return $country;
            }
    ?>