我无法让这个工作。我做错了什么?它没有给我任何错误,但它不起作用。
<?php
class GameStruct
{
public $Name;
public $Game;
public $NoticeLeave;
public function Init($n, $g, $nl)
{
$Name = $n;
$Game = $g;
$NoticeLeave = $nl;
}
}
$struct = Array();
function AddDefinition( $name, $game, $notice )
{
$instance = new GameStruct;
$instance->Init( $name, $game, $notice );
$struct[] = $instance;
}
AddDefinition( "leavecsgo", "csgo", "Du har nu lämnat CS:GO-turneringen!" );
AddDefinition( "leavesmite", "smite", "Du har nu lämnat Smite-turneringen!" );
AddDefinition( "leavefifa", "fifa", "Du har nu lämnat Fifa-turneringen!" );
AddDefinition( "leavehearthstone", "hearthstone", "Du har nu lämnat Hearthstone-turneringen!" );
AddDefinition( "leavedota2", "dota2", "Du har nu lämnat Dota2-turneringen!" );
for($i = 0; $i < count($struct); $i++)
{
if(!isset($_POST[$struct->name]))
{
$sql = $con->query("DELETE FROM comp_user WHERE Username='{$Username}' AND Game='{$struct->game}'");
}
}
?>
问题是它在函数中是不同的作用域。所以AddDefinition中的$struct和外部的$struct是两个不同的变量!函数中的$struct是一个局部变量,它只存在于函数中。外部$struct是另一个变量。
此页可能对您有所帮助:http://php.net/manual/en/language.variables.scope.php