1
我有一个类,它类似于以下内容:PHP类和静态变量 - 我应该使用__destruct()吗?
class Person
{
private static $_sqlData;
public function __construct($id)
{
if (!self::$_sqlData)
{
self::$_sqlData = // GET THE DB STUFF
}
}
public function getName()
{
return self::$_sqlData['name'];
}
}
这一直工作正常,直到我需要把它放在一个循环。
foreach ($ids as $id)
{
$person = new Person($id);
echo $person->getName();
}
这继续返回第一人称名称,而不是给定ID的所有名称。原因是静态变量。 我已经通过添加__destruct()
函数来设置$_sqlData
为false,然后在foreach()
循环中调用unset()
$person
来解决此问题。
这是处理这个问题的好方法吗?我应该以不同的方式处理这个问题吗