在PHP内部函数中使用全局字符串不止一次


Using global string in PHP inside function more than once

我有一个类,它看起来是这样的。

class foo{
    private $url = ""
    function createURL($contryCode){
        global $url;
        $url = 'google'
        echo $url;
        if($url == ''){exit()}
        $fullURL = "http://" . $url . $countryCode . "/";
        return $fullURL;
     }
}

在下一个脚本中,我将其命名为....

$address = $foo -> createURL(".us");

它将输出全局为"google"并通过null检查,但是当我连接它时,它将用null值填充字符串。除了"全球化不好"之外,我找不到任何理由。

有人有什么想法吗?

编辑:更多的信息…$address用"http:///"填充(http://和/常量,但不是全局变量)。

方法实现本身看起来很好,正如我在上面的评论中提到的那样。然而,我的印象是,您还没有完全理解如何使用您的类定义。看一下这个简单的例子:

<?php
class foo{
    private $url = ""
    function createURL($contryCode){
        global $url;
        $url = 'google'
        echo $url;
        if($url == ''){exit()}
        $fullURL = "http://" . $url . $countryCode . "/";
        return $fullURL;
     }
}
$fooObj = new foo;
$address = $fooObj->createURL(".us");
var_dump($address);
旁注:在大多数情况下,全局变量确实被认为是糟糕的风格。然而,这并不意味着它们一般不会像预期的那样工作。使用全局变量有两个主要问题,您当然应该避免它们:使用这样的全局变量和2是很难调试和维护软件的。它们经常导致与使用相同全局变量名的库和pear类等其他代码发生冲突,从而导致意外行为。