My php is a little rusty but this is boggling my mind right now. I googled this and read all the stackoverflow questions I could find that looked related, but those all seem
<?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();
?>
global
tells that PHP need to use the global variable in the local function scope.
Using globals for something like this is a poor practice. Consider an alternate approach such as the following:
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();
It's defined at the global scope. Use global if you want to use it.
if you don't want to use globals, you can jast use
function add_msg($msg)
{
echo "<div>$msg</div>";
}
add_msg("test");
add_msg("test2");
function, the result will be the same.