-2

这是我在 PHPUnit 中的自定义函数。

protected function checkIfSetGlobalTest($VARIABLE, $ASSIGNMENT) {
    global $VARIABLE;
    if(!isset($VARIABLE) == true) {
        $VARIABLE = $ASSIGNMENT;
    }
}

这是我调用该函数的时间。

protected function setUp() {
    $this->checkIfSetGlobalTest("$URL", "http://google.com");
    $this->setBrowser("*firefox");
    $this->setBrowserUrl($URL);

}

我想查看是否设置了变量,如果没有,则将该 URL 分配给该变量。就像下面的代码。

global $URL;
if(!isset($URL) == true) {
    $URL = "http://google.com";
}
4

2 回答 2

1

听起来你需要变量。

您可以像这样使用此功能:

protected function checkIfSetGlobalTest($VARIABLE, $ASSIGNMENT) {
    $VARIABLE = ltrim($VARIABLE, '$');
    global $$VARIABLE;
    if(!isset($$VARIABLE) == true) {
        $$VARIABLE = $ASSIGNMENT;
    }
}

或者只使用$GLOBALS superglobal

protected function checkIfSetGlobalTest($VARIABLE, $ASSIGNMENT) {
    $VARIABLE = ltrim($VARIABLE, '$');
    if(!isset($GLOBALS[$VARIABLE]) == true) {
        $GLOBALS[$VARIABLE] = $ASSIGNMENT;
    }
}
于 2012-10-16T19:19:42.847 回答
0

您需要通过引用传递第一个变量,以便在您的函数中对其进行修改:

protected function checkIfSetGlobalTest(&$VARIABLE, $ASSIGNMENT)

此外,您不应在传递时传递引用的变量,否则它将传递值。

$this->checkIfSetGlobalTest($URL, "http://google.com");

这样做,您将不需要global在您的函数中使用来检查它是否已设置。

于 2012-10-16T19:17:08.123 回答