gpt4 book ai didi

带有可调用提示的 PHP 函数参数...可以为 NULL 吗?

转载 作者:行者123 更新时间:2023-12-03 23:27:45 32 4
gpt4 key购买 nike

我想要一个接受参数A 的PHP 函数,我已经给出了类型提示callable。问题是在某些情况下,我希望能够将 NULL 或类似的东西作为参数值传递,表明尚未提供回调。我收到以下错误:

"Argument must be callable, NULL given".

请问有什么想法可以实现吗?

响应发布的答案和问题...

PHP 版本为 5.4.14

代码是...

class DB
{
protected function ExecuteReal($sqlStr, array $replacements, callable $userFunc, $allowSensitiveKeyword)
{
...
if( $userFunc != NULL && is_callable($userFunc) )
$returnResult = $call_user_func($userFunc, $currRow);
...
}

...
public function DoSomething(...)
{
$result = $this->ExecuteReal($queryStr, Array(), NULL, TRUE);
...
}
}

在上面的代码片段中,我不需要使用任何数据进行回调,因此我无需传入可调用对象,而是传入 NULL。但这是错误消息的原因。

解决方案是下面的答案...谢谢大家:)

最佳答案

当你使用类型提示时(只有 array interfaces 和 classes 可以被类型提示/直到 php 5.6/./从 7.0 开始,也可以键入提示标量类型/),您可以将参数的默认值设置为 null。如果你愿意,让参数是可选的。

$something = 'is_numeric';
$nothing = null;

function myFunction(Callable $c = null){
//do whatever

}

所有作品:

 myFunction();
myFunction($nothing);
myFunction($something);

在此处阅读更多信息:http://php.net/manual/en/language.oop5.typehinting.php

关于带有可调用提示的 PHP 函数参数...可以为 NULL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16153596/

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