rfc:operator_functions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
rfc:operator_functions [2017/09/09 00:15] – fix error ajfrfc:operator_functions [2017/09/09 21:25] – fix partial application example ajf
Line 62: Line 62:
 <code php> <code php>
 // Select only the positive numbers // Select only the positive numbers
-$positiveSubset = array_filters($numbers, partialApply('>', 0));+$positiveSubset = array_filters($numbers, partialApply('<', 0));
 </code> </code>
  
Line 78: Line 78:
 The table below lists the new functions that would be added to the root namespace (''\''). Each is named the same as its corresponding operator, including any aliases (for the sake of consistency). The table below lists the new functions that would be added to the root namespace (''\''). Each is named the same as its corresponding operator, including any aliases (for the sake of consistency).
  
-^ Function signature        ^ Corresponding operation             ^ Notes                 +^ Function signature        ^ Corresponding operation             ^ Notes                       
-| <php>'+'($a[, $b])</php>  | <php>+$a</php>, <php>$a + $b</php>                       +| <php>'+'($a[, $b])</php>  | <php>+$a</php>, <php>$a + $b</php>                             
-| <php>'-'($a[, $b])</php>  | <php>-$a</php>, <php>$a - $b</php>                       +| <php>'-'($a[, $b])</php>  | <php>-$a</php>, <php>$a - $b</php>                             
-| <php>'*'($a, $b)</php>    | <php>$a * $b</php>                  |                       +| <php>'*'($a, $b)</php>    | <php>$a * $b</php>                  |                             
-| <php>'/'($a, $b)</php>    | <php>$a / $b</php>                  |                       +| <php>'/'($a, $b)</php>    | <php>$a / $b</php>                  |                             
-| <php>'%'($a, $b)</php>    | <php>$a % $b</php>                  |                       +| <php>'%'($a, $b)</php>    | <php>$a % $b</php>                  |                             
-| <php>'**'($a, $b)</php>   | <php>$a ** $b</php>                                       +| <php>'**'($a, $b)</php>   | <php>$a ** $b</php>                                             
-| <php>'&'($a, $b)</php>    | <php>$a & $b</php>                  |                       +| <php>'&'($a, $b)</php>    | <php>$a & $b</php>                  |                             
-| <php>'|'($a, $b)</php>    | <php>$a | $b</php>                  |                       +| <php>'|'($a, $b)</php>    | <php>$a | $b</php>                  |                             
-| <php>'^'($a, $b)</php>    | <php>$a ^ $b</php>                  |                       +| <php>'^'($a, $b)</php>    | <php>$a ^ $b</php>                  |                             
-| <php>'~'($a)</php>        | <php>~$a</php>                      |                       +| <php>'~'($a)</php>        | <php>~$a</php>                      |                             
-| <php>'<<'($a, $b)</php>   | <php>$a << $b</php>                                       +| <php>'<<'($a, $b)</php>   | <php>$a << $b</php>                                             
-| <php>'>>'($a, $b)</php>   | <php>$a >> $b</php>                                       +| <php>'>>'($a, $b)</php>   | <php>$a >> $b</php>                                             
-| <php>'=='($a, $b)</php>   | <php>$a == $b</php>                                       +| <php>'=='($a, $b)</php>   | <php>$a == $b</php>                                             
-| <php>'==='($a, $b)</php>  | <php>$a === $b</php>                |                       +| <php>'==='($a, $b)</php>  | <php>$a === $b</php>                |                             
-| <php>'!='($a, $b)</php>   | <php>$a != $b</php>                                       +| <php>'!='($a, $b)</php>   | <php>$a != $b</php>                                             
-| <php>'<>'($a, $b)</php>   | <php>$a <> $b</php>                                       +| <php>'<>'($a, $b)</php>   | <php>$a <> $b</php>                                             
-| <php>'!=='($a, $b)</php>  | <php>$a !== $b</php>                |                       +| <php>'!=='($a, $b)</php>  | <php>$a !== $b</php>                |                             
-| <php>'<'($a, $b)</php>    | <php>$a < $b</php>                  |                       +| <php>'<'($a, $b)</php>    | <php>$a < $b</php>                  |                             
-| <php>'>'($a, $b)</php>    | <php>$a > $b</php>                  |                       +| <php>'>'($a, $b)</php>    | <php>$a > $b</php>                  |                             
-| <php>'<='($a, $b)</php>   | <php>$a <= $b</php>                                       +| <php>'<='($a, $b)</php>   | <php>$a <= $b</php>                                             
-| <php>'>='($a, $b)</php>   | <php>$a >= $b</php>                                       +| <php>'>='($a, $b)</php>   | <php>$a >= $b</php>                                             
-| <php>'<=>'($a, $b)</php>  | <php>$a <=> $b</php>                |                       +| <php>'<=>'($a, $b)</php>  | <php>$a <=> $b</php>                |                             
-| <php>'&&'($a, $b)</php>   | <php>$a && $b</php>                 | Can't short-circuit. +| <php>'&&'($a, $b)</php>   | <php>$a && $b</php>                 | Can'fully short-circuit. 
-| <php>'and'($a, $b)</php>  | <php>$a and $b</php>                | Can't short-circuit. +| <php>'and'($a, $b)</php>  | <php>$a and $b</php>                | Can'fully short-circuit. 
-| <php>'||'($a, $b)</php>   | <php>$a || $b</php>                 | Can't short-circuit. +| <php>'||'($a, $b)</php>   | <php>$a || $b</php>                 | Can'fully short-circuit. 
-| <php>'or'($a, $b)</php>   | <php>$a or $b</php>                 | Can't short-circuit. +| <php>'or'($a, $b)</php>   | <php>$a or $b</php>                 | Can'fully short-circuit. 
-| <php>'xor'($a, $b)</php>  | <php>$a xor $b</php>                |                       +| <php>'xor'($a, $b)</php>  | <php>$a xor $b</php>                |                             
-| <php>'!'($a)</php>        | <php>!$a</php>                      |                       +| <php>'!'($a)</php>        | <php>!$a</php>                      |                             
-| <php>'.'($a, $b)</php>    | <php>$a . $b</php>                  |                       |+| <php>'.'($a, $b)</php>    | <php>$a . $b</php>                  |                             |
  
 Since <php>pow()</php> already exists and behaves identically to how <php>'**'()</php> would, <php>'**'()</php> is simply an alias of it. Since <php>pow()</php> already exists and behaves identically to how <php>'**'()</php> would, <php>'**'()</php> is simply an alias of it.
Line 153: Line 153:
 The existing operators themselves behave the same as ever. The existing operators themselves behave the same as ever.
  
-Quoting function names in function calls is not new, it is a consequence of [[rfc:uniform_variable_syntax|Uniform Variable Syntax]].+Being able to quote function names in function calls (e.g. <php>'+'(1, 1)</php>is not new idea introduced by this RFC, it has been possible since [[rfc:uniform_variable_syntax|Uniform Variable Syntax]] in PHP 7.0.
  
 ===== Future Scope ===== ===== Future Scope =====
rfc/operator_functions.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1