* [refac] Optimize performance by caching argument count in delegate class.

This commit is contained in:
liugang
2025-11-18 15:03:23 +08:00
parent 72fa47f3ee
commit 8ff59d8ffe
+5 -4
View File
@@ -140,20 +140,21 @@ class baseDelegate
return call_user_func_array([$className, $name], $arguments);
}
if(property_exists($className, $name) && count($arguments) === 1)
$argumentCount = count($arguments);
if(property_exists($className, $name) && $argumentCount === 1)
{
// 支持静态属性的直接赋值
$className::$$name = $arguments[0];
return;
}
if(property_exists($className, $name) && count($arguments) === 0)
if(property_exists($className, $name) && $argumentCount === 0)
{
// 支持静态属性的直接读取
return $className::$$name;
}
if(strpos($name, 'set') === 0 && property_exists($className, lcfirst(substr($name, 3))) && count($arguments) === 1)
if(strpos($name, 'set') === 0 && property_exists($className, lcfirst(substr($name, 3))) && $argumentCount === 1)
{
// 支持静态属性的 set 方法
$property = lcfirst(substr($name, 3));
@@ -161,7 +162,7 @@ class baseDelegate
return;
}
if(strpos($name, 'get') === 0 && property_exists($className, lcfirst(substr($name, 3))) && count($arguments) === 0)
if(strpos($name, 'get') === 0 && property_exists($className, lcfirst(substr($name, 3))) && $argumentCount === 0)
{
// 支持静态属性的 get 方法
$property = lcfirst(substr($name, 3));