我有一个类,它看起来是这样的。
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类等其他代码发生冲突,从而导致意外行为。