提问人:yuvi 提问时间:10/8/2023 更新时间:10/9/2023 访问量:42
全局覆盖 Laravel 中的基本计数函数
overwriting basic count function in laravel globally
问:
我们正在升级我们的 laravel 项目,它包括从 php7 到 php8 的语言升级。请考虑以下代码:
$a = new stdClass()
count($a)
将导致:
// php7
==> 1
// php8
==> TypeError count(): Argument #1 ($value) must be of type Countable|array
现在我们的应用程序非常大,有很多小的零碎的东西,而且计数在很多地方都用在了可能不应该使用的东西上。我覆盖了大部分地面,但理想情况下,我希望有某种后备措施。有没有办法全局覆盖 laravel 应用程序中的内置计数函数,希望能做这样的事情:
// very general pseudocode
function newCount($foo) {
try {
return count($foo);
} except {
\Log::warning('used count on non Countable|array')
return 1;
}
}
然后以某种方式绑定它:
// anywhere in the app code
count($a) // ==> will call newCount($a) instead
答:
评论
count()
TypeError
count