]> granicus.if.org Git - php/commitdiff
Add UPDRADING note about yield operator behavior
authorNikita Popov <nikic@php.net>
Mon, 9 Mar 2015 11:38:46 +0000 (12:38 +0100)
committerNikita Popov <nikic@php.net>
Mon, 9 Mar 2015 11:41:33 +0000 (12:41 +0100)
Fixes bug #69160.
[ci skip]

UPGRADING

index 1e81505f86b1687d6e9caf498402f560aa070d61..e844cc4dcdedb491e07ad082ad69494a462e2c2d 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -323,6 +323,25 @@ Relevant RFCs:
 Other language changes
 ----------------------
 
+* The yield language construct no longer requires parentheses when used in an
+  expression context. It is now a right-associative operator with precedence
+  between the "print" and "=>" operators. This can result in different behavior
+  in some cases, for example:
+
+      echo yield -1;
+      // Was previously interpreted as
+      echo (yield) - 1;
+      // And is now interpreted as
+      echo yield (-1);
+
+      yield $foo or die;
+      // Was previously interpreted as
+      yield ($foo or die);
+      // And is now interpreted as
+      (yield $foo) or die;
+
+  Such cases can always be resolved by adding additional parentheses.
+
   . Removed ASP (<%) and script (<script language=php>) tags.
     (RFC: https://wiki.php.net/rfc/remove_alternative_php_tags)
   . Removed support for assigning the result of new by reference.