gpt4 book ai didi

php - 查看父类的子类中是否存在静态属性(后期静态绑定(bind))?

转载 作者:可可西里 更新时间:2023-11-01 13:12:16 24 4
gpt4 key购买 nike

父类中的代码:

foreach(static::$_aReadOnlyDatabaseTables AS $TableName => $aColumns){
// Do something
}

这在子类中定义了 $_aReadOnlyDatabaseTables 时有效,但在 $_aReadOnlyDatabaseTables 不存在时抛出错误。我需要先检查这个属性是否存在。

我认为它应该是这样的:

if(property_exists(static,$_aReadOnlyDatabaseTables)){
foreach(static::$_aReadOnlyDatabaseTables AS $TableName => $aColumns){
// Do something
}
}

但这会引发语法错误,unexpected ',', expecting T_PAAMAYIM_NEKUDOTAYIM。使用 $this 代替 static 也不起作用,它总是求值为 false。

正确的语法是什么?

最佳答案

你应该试试这个:

if(property_exists(get_called_class(), '_aReadOnlyDatabaseTables')) {
foreach(static::$_aReadOnlyDatabaseTables AS $TableName => $aColumns){
// Do something
}
}

关于php - 查看父类的子类中是否存在静态属性(后期静态绑定(bind))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15483169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com