Вот мой код:Недопустимый аргумент, предоставленный foreach(); Массив не установлен должным образом
class Subscriber extends DatabaseObject {
protected static $table_name = "email_list";
protected static $db_fields = array('id', 'email');
public $id;
public $email;
function __construct() {
self::$object = new Subscriber;
}
}
В родительском классе, DatabaseObject
, проблема:
class DatabaseObject {
protected static $object;
protected static $db_fields;
protected function attributes() {
$attributes = array();
foreach (self::$db_fields as $field) {
// edited
}
return $attributes;
}
Однако я получаю Warning: Invalid argument supplied for foreach()
из линии:
foreach (self::$db_fields as $field) {
Почему массив не установлен? Я попытался установить его в constructor
вручную, но он тоже не работал.
Глядя на ваш code, '$ db_fields' не похож на массив. 'foreach' ожидает массив, поскольку это первый аргумент. Просмотрите документацию 'foreach' [здесь] (http://php.net/manual/en/control-structures.foreach.php). – War10ck
Late Static Binding: 'foreach (static :: $ db_fields as $ field) {' ' –