Nic*_*ick 6 php late-static-binding
父类中的代码:
foreach(static::$_aReadOnlyDatabaseTables AS $TableName => $aColumns){
// Do something
}
Run Code Online (Sandbox Code Playgroud)
此工程时,$ _aReadOnlyDatabaseTables在子类中的定义,但在$ _aReadOnlyDatabaseTables不存在抛出一个错误.我需要先检查这个属性是否存在.
我认为它应该是这样的:
if(property_exists(static,$_aReadOnlyDatabaseTables)){
foreach(static::$_aReadOnlyDatabaseTables AS $TableName => $aColumns){
// Do something
}
}
Run Code Online (Sandbox Code Playgroud)
但这会引发语法错误unexpected ',', expecting T_PAAMAYIM_NEKUDOTAYIM.使用$this代替static也不起作用,它总是评估错误.
这个的正确语法是什么?
你应该试试这个:
if(property_exists(get_called_class(), '_aReadOnlyDatabaseTables')) {
foreach(static::$_aReadOnlyDatabaseTables AS $TableName => $aColumns){
// Do something
}
}
Run Code Online (Sandbox Code Playgroud)