【发布时间】:2013-08-22 00:24:12
【问题描述】:
我正在为我的基于 PHP 的文件管理器创建一个搜索功能。我收到此错误:“可捕获的致命错误:无法将类闭包的对象转换为字符串”:
if ($data->input_ext)
{
$data_ext = ($begun ? ($data->input_logic ? ' OR ' : ' AND ') :
function ()
{
$begun = true;
return "";
}) . 'ext = "' . $data->input_ext . '"';
$data_string.= $data_ext;
}
这是构建 SQL 查询的一部分。 $begun_files 只是根据用户是否输入名称或在此之前的任何内容来匹配是否将“OR”或“AND”放在开头。我有一种感觉,我不允许在三元表达式中包含匿名函数,但我应该怎么做呢?
谢谢!
【问题讨论】:
-
function() { $begun_files = true; return ""; }).'size '--- 执行此表达式会得到什么结果? (一秒钟 - 你正在连接一个匿名函数和一个字符串) -
所有内容都必须在一行上是否有原因?
-
@Jack:性能更高
-
@zerkms 啊,对,这就解释了 :)
-
对不起,我就是这么写的。我已经对代码进行了一些更改,但我仍然遇到同样的问题。我会重新发布它,格式化。
标签: php closures anonymous-function ternary-operator