Grazie ragazzi, sono ancora agli inizi con i patterns e mi sono bloccato a questo punto:
Visto che ho diversi oggetti che hanno un comportamento comune, ho pensato di fare una classe e di estenderla in questo modo. Peccato che non funziona.
Codice PHP:
abstract class Content
{
private $data;
private $rules;
public function __construct()
{
$this->rules = array(
'string'=> function($v){return htmlspecialchars(trim($v));},
'int' => function($v){return filter_var($v, FILTER_SANITIZE_NUMBER_INT);}
);
}
public function __set($p, $v)
{
if(array_key_exists($p, self::$typesRules))
$this->data[$p] = $this->rules[self::$typesRules[$p]]($v); //ERRORE QUI
}
public function __get($p)
{
return $this->data[$p];
}
}
class Film extends Content
{
private static $typesRules = array(
'title' => 'string',
'year' => 'int'
);
}
class Actor extends Content
{
private static $typesRules = array(
'name' => 'string',
'surname' => 'string',
'born_year' => 'int'
);
}
Mi viene questo errore: Fatal error: Access to undeclared static property: Content::$typesRules in C:\wamp\www\patterns\controller.php on line 16