You have a non defaulted parameter $key
in your constructor:
public function __construct($key, $value = null, $displayable = 1)
So, when you are doing this:
$settings = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,'Setting');
Error: warning: Missing argument 1 for Setting::__construct() in pdo.php
is thrown only for parameter $key
because it is not defaulted.
The correct use of fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,...
is like this:
$variable = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,
'classname',
<array of parameter names(in order) used in constructor>);
So, in your case:
$variable = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,
'Setting',
array('key', 'value', 'displayable');
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…