Visa ett inlägg
Oläst 2012-07-23, 02:42 #2
Weaver Weaver är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2006
Inlägg: 403
Weaver Weaver är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2006
Inlägg: 403
Standard Använd __get och __set

PHP har två så kallade magiska funktioner för att implementera getters och setters. De heter __get respektive __set och de tar emot värdets namn som argument.

Här är en snabb klass för att demonstrera det hela.
Kod:
class Person 
{
    public function __set($name, $value)
    {
        switch ($name)
        {
            case 'firstname':
                $this->firstname = $value;
                break;
            
            case 'lastname':
                $this->lastname = $value;
                break;
        }
    }
    
    public function __get($name)
    {
        switch ($name)
        {
            case 'firstname':
                return $this->firstname;
            
            case 'lastname':
                return $this->lastname;
        }
        
        return null;
    }
    
    private $firstname;
    private $lastname;
}
Här är en alternativ implementation som istället använder en array för att lagra värdena:
Kod:
class Person 
{
    public function __set($name, $value)
    {
        $this->name[$name] = $value;
    }
    
    public function __get($name)
    {
        if (isset($this->name[$name])) {
            return $this->name[$name];
        }
        
        return null;
    }

    private $name = array();
}
Och här kommer ett användningsfall:
Kod:
$person = new Person();
$person->firstname = 'Conny';
$person->lastname = 'Westh';

echo "{$person->firstname} {$person->lastname}";
Hoppas det hjälper dig!
Weaver är inte uppkopplad   Svara med citatSvara med citat