ted*_*ers 9 php variables undefined
我的php有点生疏,但现在这让我很难过.我搜索了这个并阅读了所有看起来相关的stackoverflow问题,但那些似乎都有合法的未定义变量.这让我相信我的问题是同样的问题,但没有多少盯着简单的代码我已经减少了这个似乎让我无处可去.请有人给我我的傻帽并告诉我我做错了什么!
<?php
//test for damn undefined variable error
$msgs = "";
function add_msg($msg){
$msgs .= "<div>$msg</div>";
}
function print_msgs(){
print $msgs;
}
add_msg("test");
add_msg("test2");
print_msgs();
?>
Run Code Online (Sandbox Code Playgroud)
这给了我以下令人抓狂的输出:
注意:未定义的变量:第7行的C:\ wamp\www\fgwl\php-lib\fgwlshared.php中的消息
注意:未定义的变量:第7行的C:\ wamp\www\fgwl\php-lib\fgwlshared.php中的消息
注意:未定义的变量:第10行的C:\ wamp\www\fgwl\php-lib\fgwlshared.php中的消息
是的,这应该是一个共享文件,但此刻我已经将它剥离到我粘贴的内容.有任何想法吗?
Veg*_*ger 13
<?php
$msgs = "";
function add_msg($msg){
global $msgs;
$msgs .= "<div>$msg</div>";
}
function print_msgs(){
global $msgs;
print $msgs;
}
add_msg("test");
add_msg("test2");
print_msgs();
?>
Run Code Online (Sandbox Code Playgroud)
global
告诉PHP需要在本地函数范围中使用全局变量.
对这样的事情使用全局变量是一种糟糕的做法.考虑一种替代方法,如下所示:
class MessageQueue {
private static $msgs;
public static function add_msg($msg){
self::$msgs .= "<div>$msg</div>";
}
public static function print_msgs(){
print self::$msgs;
}
}
MessageQueue::add_msg("test");
MessageQueue::add_msg("test2");
MessageQueue::print_msgs();
Run Code Online (Sandbox Code Playgroud)