带有字符串键或嵌套引号的数组到 php 中的 lambda 函数中
Posted
技术标签:
【中文标题】带有字符串键或嵌套引号的数组到 php 中的 lambda 函数中【英文标题】:Arrays with string keys or nested quotes into a lambda function in php 【发布时间】:2012-11-30 01:46:58 【问题描述】:我想创建一个 lambda 函数,我正在这样做:
create_function('$range', 'return " ( ABS(a.price) > format_money($range["min"] AND ABS(a.price) < format_money($range["max"]) ) OR a.price is null " ');
但是 $range["min"] 部分破坏了我的尝试......嵌套引号有问题,我不知道如何解决它,我什至不知道是否可以这样做或php没有那么强大,有什么亮点吗?
【问题讨论】:
您可以使用\"
转义您的 "
可能对您有帮助:***.com/questions/1909002/what-use-is-lambda-in-php
【参考方案1】:
我能够通过将您的值连接到这样的字符串来完成此操作:
create_function('$range', 'return " ( ABS(a.price) > format_money(" . $range["min"] . " AND ABS(a.price) < format_money(" . $range["max"] . ") ) OR a.price is null "; ');
该函数的输出是:
string(92) " ( ABS(a.price) > format_money(10 AND ABS(a.price) < format_money(20) ) OR a.price is null "
【讨论】:
【参考方案2】:使用转义单引号和 ;
解析,不知道执行情况。
create_function('$range', 'return \' ( ABS(a.price) > format_money($range["min"] AND ABS(a.price) < format_money($range["max"]) ) OR a.price is null \'; ');
【讨论】:
【参考方案3】:算了,写错了,正确的做法是:
create_function('$range', 'return " ( ABS(a.price) > ".format_money($range[\'min\'])." AND ABS(a.price) < ".format_money($range[\'max\'])." ) OR a.price is null "; ');
现在可以了!
【讨论】:
【参考方案4】:您不能在单引号内调用变量。
create_function('$range', 'return " ( ABS(a.price) > format_money('.$range["min"].' AND ABS(a.price) < format_money('.$range["max"].') ) OR a.price is null " ');
【讨论】:
但我需要将 $range["min"] 作为字符串传递,而不是值!以上是关于带有字符串键或嵌套引号的数组到 php 中的 lambda 函数中的主要内容,如果未能解决你的问题,请参考以下文章
php json_encode后的json里面的int类型变成string类型