Thông báo này hiển thị trong php 5.4 vì một lý do lạ.Tiêu chuẩn nghiêm ngặt: Mô hình hàm tĩnh :: tableStruct() không được trừu tượng trong
Lớp học của tôi trông như thế này:
abstract class model{
private static
$tableStruct = array();
abstract protected static function tableStruct();
public static function foo(){
if(!isset(self::$tableStruct[get_called_class()]))
self::$tableStruct[get_called_class()] = static::tableStruct();
// I'm using it here!!
}
}
và nên được sử dụng như:
class page extends model{
protected static function tableStruct(){
return array(
'id' => ...
'title' => ...
);
}
...
}
Tại sao thực hiện một phương pháp tĩnh theo yêu cầu của lớp trẻ được coi là chống lại các tiêu chuẩn?
Nó không chỉ là 5.4, nó được như thế trong một thời gian. Xem [câu hỏi tương tự] (http://stackoverflow.com/questions/999066/why-does-php-5-2-disallow-abstract-static-class-methods). –