| @@ 167-188 (lines=22) @@ | ||
| 164 | ||
| 165 | /** |
|
| 166 | */ |
|
| 167 | public function toString(array $options=[]) |
|
| 168 | { |
|
| 169 | $operator = self::operator; |
|
| 170 | if ( ! $this->operands) { |
|
| 171 | return $this->cache['string'] = "['{$operator}']"; |
|
| 172 | } |
|
| 173 | ||
| 174 | $indent_unit = isset($options['indent_unit']) ? $options['indent_unit'] : ''; |
|
| 175 | $line_break = $indent_unit ? "\n" : ''; |
|
| 176 | ||
| 177 | $out = "['{$operator}',$line_break"; |
|
| 178 | ||
| 179 | foreach ($this->operands as $operand) { |
|
| 180 | $out .= implode("\n", array_map(function($line) use (&$indent_unit) { |
|
| 181 | return $indent_unit.$line; |
|
| 182 | }, explode("\n", $operand->toString($options)) )) . ",$line_break"; |
|
| 183 | } |
|
| 184 | ||
| 185 | $out .= ']'; |
|
| 186 | ||
| 187 | return $this->cache['string'] = $out; |
|
| 188 | } |
|
| 189 | ||
| 190 | /** |
|
| 191 | * Remove AndRules operands of AndRules |
|
| @@ 131-152 (lines=22) @@ | ||
| 128 | ||
| 129 | /** |
|
| 130 | */ |
|
| 131 | public function toString(array $options=[]) |
|
| 132 | { |
|
| 133 | $operator = self::operator; |
|
| 134 | if ( ! $this->operands) { |
|
| 135 | return $this->cache['string'] = "['{$operator}']"; |
|
| 136 | } |
|
| 137 | ||
| 138 | $indent_unit = isset($options['indent_unit']) ? $options['indent_unit'] : ''; |
|
| 139 | $line_break = $indent_unit ? "\n" : ''; |
|
| 140 | ||
| 141 | $out = "['{$operator}',$line_break"; |
|
| 142 | ||
| 143 | foreach ($this->operands as $operand) { |
|
| 144 | $out .= implode("\n", array_map(function($line) use (&$indent_unit) { |
|
| 145 | return $indent_unit.$line; |
|
| 146 | }, explode("\n", $operand->toString($options)) )) . ",$line_break"; |
|
| 147 | } |
|
| 148 | ||
| 149 | $out .= ']'; |
|
| 150 | ||
| 151 | return $this->cache['string'] = $out; |
|
| 152 | } |
|
| 153 | ||
| 154 | /** |
|
| 155 | * + if A > 2 && A > 1 <=> A > 2 |
|