PHP sınıfları ve statik değişkenler - Ben __ imha kullanın () mi?

0 Cevap php

Ben şu benzeyen bir sınıf vardır:

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'];
    }
}

Ben bir döngü içinde yerleştirmek için gerekli olana kadar bu iyi çalışıyor olmuştur.

foreach ($ids as $id)
{
    $person = new Person($id);
    echo $person->getName();
}

This continues to return the first persons name rather than all the names for the given IDs. The reason being the static variable. I've overcome this by adding in a __destruct() function to set $_sqlData to false then calling unset() on $person in the foreach() loop.

Bu işleme iyi bir yolu var mı? Ben farklı bu yaklaşıyor olmalı?

0 Cevap