@@ -11,37 +11,45 @@ public static function create(Definitions $customOperators)
1111 {
1212 $ defaultInlineOperators = [
1313 'and ' => function ($ a , $ b ) {
14- return sprintf ('(%s AND %s ) ' , $ a , $ b );
14+ return sprintf ('(%s) ' , OperatorTools:: inlineMixedInstructions ([ $ a , $ b], ' AND ' ) );
1515 },
1616 'or ' => function ($ a , $ b ) {
17- return sprintf ('(%s OR %s ) ' , $ a , $ b );
17+ return sprintf ('(%s) ' , OperatorTools:: inlineMixedInstructions ([ $ a , $ b], ' OR ' ) );
1818 },
1919 'not ' => function ($ a ) {
20- return sprintf ('NOT (%s) ' , $ a );
20+ return sprintf ('NOT (%s) ' , OperatorTools:: inlineMixedInstructions ([ $ a ]) );
2121 },
2222 '= ' => function ($ a , $ b ) {
23- return sprintf ( ' %s = %s ' , $ a , $ b );
23+ return OperatorTools:: inlineMixedInstructions ([ $ a , $ b], ' = ' );
2424 },
2525 '!= ' => function ($ a , $ b ) {
26- return sprintf ( ' %s != %s ' , $ a , $ b );
26+ return OperatorTools:: inlineMixedInstructions ([ $ a , $ b], ' != ' );
2727 },
2828 '> ' => function ($ a , $ b ) {
29- return sprintf ( ' %s > %s ' , $ a , $ b );
29+ return OperatorTools:: inlineMixedInstructions ([ $ a , $ b], ' > ' );
3030 },
3131 '>= ' => function ($ a , $ b ) {
32- return sprintf ( ' %s >= %s ' , $ a , $ b );
32+ return OperatorTools:: inlineMixedInstructions ([ $ a , $ b], ' >= ' );
3333 },
3434 '< ' => function ($ a , $ b ) {
35- return sprintf ( ' %s < %s ' , $ a , $ b );
35+ return OperatorTools:: inlineMixedInstructions ([ $ a , $ b], ' < ' );
3636 },
3737 '<= ' => function ($ a , $ b ) {
38- return sprintf ( ' %s <= %s ' , $ a , $ b );
38+ return OperatorTools:: inlineMixedInstructions ([ $ a , $ b], ' <= ' );
3939 },
4040 'in ' => function ($ a , $ b ) {
41- return sprintf ('%s IN %s ' , $ a , $ b [0 ] === '( ' ? $ b : '( ' .$ b .') ' );
41+ if ($ b [0 ] === '( ' ) {
42+ return OperatorTools::inlineMixedInstructions ([$ a , $ b ], 'IN ' );
43+ } else {
44+ return sprintf (
45+ '%s IN (%s) ' ,
46+ OperatorTools::inlineMixedInstructions ([$ a ]),
47+ OperatorTools::inlineMixedInstructions ([$ b ])
48+ );
49+ }
4250 },
4351 'like ' => function ($ a , $ b ) {
44- return sprintf ( ' %s LIKE %s ' , $ a , $ b );
52+ return OperatorTools:: inlineMixedInstructions ([ $ a , $ b], ' LIKE ' );
4553 },
4654 ];
4755
0 commit comments