0

我想知道是否可以在不向函数传递参数的情况下更改和初始化函数中的变量。这是我想要实现的目标:

$foo = 'Lorem';
$array = array();
foobar($foo);
function foobar(){
    if (strlen($foo)== 1)
        $bar = 'Ipsum';
    else
        $array[] = 'error';
}

fubar();
function fubar(){
    if (empty($fouten))
        echo $bar;
}
4

2 回答 2

1

$foo是函数内的局部(未初始化)变量。它与全局变量$foo( $GLOBALS['foo']) 不同。

你有两种方法:

$foo;
$bar;
$array = array();

function foobar(){
    global $foo, $array, $bar;
    if (strlen($foo)== 1)
        $bar = 'Ipsum';
    else
        $array[] = 'error';
}

或者通过使用$GLOBAL数组……</p>

不过,这并不是一个很好的做法,并且会成为具有所有这些副作用的维护噩梦

于 2012-05-24T13:58:10.993 回答
1

php 中的函数可以被赋予具有默认值的参数。您以书面形式发布的代码将为您提供未定义变量的通知。相反,你可以写:

function foobar($foo = null) {
    if($foo) { // a value was passed in for $foo 
    }
    else { // foo is null, no value provided
    }
}

使用此功能,以下任何一行都不会产生通知

foobar();
foobar('test');
于 2012-05-24T13:58:41.610 回答