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 " ');

しかし、$ range ["min"]の部分は私の試みを破ります...ネストされた引用符に問題があり、それを解決する方法がわかりません。これが可能かどうか、またはphpが不可能かどうかさえわかりません。その強力な、何か光?

4

4 に答える 4

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 \'; ');
于 2012-12-12T11:18:48.907 に答える
1

I was able to get this done by concatenating your values to the string like this:

create_function('$range',  'return " ( ABS(a.price) > format_money(" . $range["min"] . " AND ABS(a.price) <  format_money(" . $range["max"] . ") ) OR a.price is null "; ');

The output of that function was:

string(92) " ( ABS(a.price) > format_money(10 AND ABS(a.price) <  format_money(20) ) OR a.price is null "
于 2012-12-12T11:17:29.643 に答える
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 " ');
于 2012-12-12T11:12:24.193 に答える
0

それを忘れてください、それは間違って作曲されました、正しい方法は次のとおりです:

create_function('$range',  'return " ( ABS(a.price) > ".format_money($range[\'min\'])." AND ABS(a.price) < ".format_money($range[\'max\'])." ) OR a.price is null "; ');

今それは動作します!

于 2012-12-12T11:15:56.473 に答える