修改PHP yaz_wait()默认超时参数报错:仅变量可按引用传递
解决yaz_wait()传入超时参数的致命错误问题
这个报错的核心原因很好理解:yaz_wait()的$options参数是按引用传递的(函数定义里的&$options就是明确标记),而PHP不允许把数组字面量(比如array("timeout" => 30))直接传给引用参数——引用需要绑定到一个实际存在的变量,而不是临时生成的字面量。
正确的调用方式
你只需要先把配置数组赋值给一个变量,再把这个变量传给yaz_wait()就可以解决问题:
// 第一步:将超时配置存入一个变量 $waitConfig = ["timeout" => 30]; // PHP 5.4+支持的短数组语法,用array()也完全没问题 // 第二步:把变量传入函数 $waitResult = yaz_wait($waitConfig);
补充说明
如果之后需要调整超时时间或者添加其他options支持的配置项,直接修改$waitConfig变量即可,完全不用改动函数调用的写法。而且这个参数是可选的,要是不需要自定义配置,直接调用yaz_wait()就能使用默认的15秒超时。
内容的提问来源于stack exchange,提问作者Ady96
相关产品推荐
相关产品推荐

