В вашем конструкторе есть параметр по умолчанию $key
:
public function __construct($key, $value = null, $displayable = 1)
Итак, когда вы делаете это:
$settings = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,'Setting');
Ошибка: warning: Missing argument 1 for Setting::__construct() in pdo.php
выбрасывается толькодля параметра $key
, поскольку он не установлен по умолчанию.
Правильное использование fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,...
выглядит следующим образом:
$variable = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,
'classname',
<array of parameter names(in order) used in constructor>);
Итак, в вашем случае:
$variable = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,
'Setting',
array('key', 'value', 'displayable');