说我已经定义了几个这样的类:
abstract class ServerVars {
public static function get($k) {
if (empty($arr[$k])) throw new Exception('Not found');
return $arr[$k]; // Also include error checking
}
public static function set($k, $v) {
$arr[$k] = $v;
}
... // Other useful methods
}
public class Session extends ServerVars {
static $arr = $_SESSION; // !!!
public static function destroy() {
...
}
}
基本上,我只是尝试包装某些服务器变量,如$ _SESSION,$ POST等,以使我的代码更加模块化。但标有!!!
的行会导致错误unexpected '$_SESSION' (T_VARIABLE)
。为什么会出现此错误?是否有更好的方法来完成我想要完成的任务?
答案 0 :(得分:1)
类变量的初始值设定项必须是常量。 $_SESSION
是一个变量,不一定是常数。
不要为此使用继承;这完全不合适。如果你坚持上课,那应该是一个班级:
class DuplicatesBuiltInFunctionality {
public function __construct($arr) {
$this->arr = $arr;
}
public function get($k) {
if(!isset($this->arr[$k])) throw new Exception('Not found');
return $this->arr[$k];
}
public function set($k, $v) {
$this->arr[$k] = $v;
}
}