#
ad525c28 |
| 29-May-2012 |
Nikita Popov |
Allow to use yield without value If the generator is used as a coroutine it often doesn't make sense to yield anything. In this case one can simply receive values using $val
Allow to use yield without value If the generator is used as a coroutine it often doesn't make sense to yield anything. In this case one can simply receive values using $value = yield; The yield here will simply yield NULL.
show more ...
|
#
3600914c |
| 29-May-2012 |
Nikita Popov |
Add support for $generator->send() Yield now is an expression and the return value is the value passed to $generator->send(). By default (i.e. if ->next() is called) the value is NUL
Add support for $generator->send() Yield now is an expression and the return value is the value passed to $generator->send(). By default (i.e. if ->next() is called) the value is NULL. Unlike in Python ->send() can be run without priming the generator with a ->next() call first.
show more ...
|
#
e14cfafc |
| 19-May-2012 |
Nikita Popov |
Add zend_do_suspend_if_generator calls The execution of generator functions will be suspended right after the arguments were RECVed. This will be done in zend_do_suspend_if_generator.
|
#
252f6234 |
| 19-May-2012 |
Nikita Popov |
Add flag for generator functions Generator functions have to specify the * (asterix) modifier after the function keyword. If they do so the ZEND_ACC_GENERATOR flag is added to the fn
Add flag for generator functions Generator functions have to specify the * (asterix) modifier after the function keyword. If they do so the ZEND_ACC_GENERATOR flag is added to the fn_flags.
show more ...
|
Revision tags: php-5.3.14RC1, php-5.4.4RC1 |
|
#
9b101ac8 |
| 15-May-2012 |
Nikita Popov |
Add T_YIELD "yield" keyword
|
Revision tags: php-5.3.13, php-5.4.3, php-5.4.2, php-5.3.12, php-5.3.11, php-5.4.1 |
|
#
ec061a93 |
| 12-Apr-2012 |
Nikita Popov |
Allow arbitrary expressions for empty() This change is as per RFC https://wiki.php.net/rfc/empty_isset_exprs. The change allows passing the result of function calls and other ex
Allow arbitrary expressions for empty() This change is as per RFC https://wiki.php.net/rfc/empty_isset_exprs. The change allows passing the result of function calls and other expressions to the empty() language construct. This is accomplished by simply rewriting empty(expr) to !expr. The change does not affect the suppression of errors when using empty() on variables. empty($undefinedVar) will continue not to throw errors. When an expression is used inside empty() on the other hand, errors will not be suppressed. Thus empty($undefinedVar + $somethingElse) *will* throw a notice. The change also does not make empty() into a real function, so using 'empty' as a callback is still not possible. In addition to the empty() changes the commit adds nicer error messages when isset() is used on function call results or other expressions.
show more ...
|
#
565892d4 |
| 15-Apr-2012 |
Xinchen Hui |
Implement const array/string dereference RFC:https://wiki.php.net/rfc/constdereference
|
Revision tags: php-5.3.11RC2, php-5.4.1RC2 |
|
#
4cf90e06 |
| 30-Mar-2012 |
Nikita Popov |
Fix lexing of nested heredoc strings in token_get_all() This fixes bug #60097. Before two global variables CG(heredoc) and CG(heredoc_len) were used to track the current heredoc
Fix lexing of nested heredoc strings in token_get_all() This fixes bug #60097. Before two global variables CG(heredoc) and CG(heredoc_len) were used to track the current heredoc label. In order to support nested heredoc strings the *previous* heredoc label was assigned as the token value of T_START_HEREDOC and the language_parser.y assigned that to CG(heredoc). This created a dependency of the lexer on the parser. Thus the token_get_all() function, which accesses the lexer directly without also running the parser, was not able to tokenize nested heredoc strings (and leaked memory). Same applies for the source-code highlighting functions. The new approach is to maintain a heredoc_label_stack in the lexer, which contains all active heredoc labels. As it is no longer required, T_START_HEREDOC and T_END_HEREDOC now don't carry a token value anymore. In order to make the work with zend_ptr_stack in this context more convenient I added a new function zend_ptr_stack_top(), which retrieves the top element of the stack (similar to zend_stack_top()).
show more ...
|
Revision tags: php-5.3.11RC1, php-5.4.1RC1, PHP-5.4.1-RC1, php-5.4.0, php-5.4.0RC8, php-5.3.10, php-5.4.0RC7, php-5.4.0RC6 |
|
#
b515bfbd |
| 17-Jan-2012 |
Dmitry Stogov |
Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants i
Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants in methods defined in traits are delayed till run-time. This approach also made possible to use __CLASS__ constant as default value for traits properties and method arguments.
show more ...
|
#
032d140f |
| 17-Jan-2012 |
Dmitry Stogov |
Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants i
Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants in methods defined in traits are delayed till run-time. This approach also made possible to use __CLASS__ constant as default value for traits properties and method arguments.
show more ...
|
Revision tags: php-5.3.9, php-5.4.0RC5 |
|
#
e4ca0ed0 |
| 01-Jan-2012 |
Felipe Pena |
- Year++
|
#
8775a375 |
| 01-Jan-2012 |
Felipe Pena |
- Year++
|
#
4e198252 |
| 01-Jan-2012 |
Felipe Pena |
- Year++
|
Revision tags: php-5.3.9RC4, php-5.4.0RC4, php-5.3.9RC3, php-5.4.0RC3, php-5.3.9RC2, php-5.4.0RC2, php-5.4.0RC1 |
|
#
eebaaf42 |
| 06-Nov-2011 |
Felipe Pena |
- Added class member access on instantiation (e.g. (new foo)->bar()) support
|
#
ff48763f |
| 06-Nov-2011 |
Felipe Pena |
- Added class member access on instantiation (e.g. (new foo)->bar()) support
|
Revision tags: php-5.3.9RC1, php-5.4.0beta2, php-5.4.0beta1, yaf-2.1.0, php-5.3.8, php-5.3.7 |
|
#
8db63e88 |
| 16-Aug-2011 |
Felipe Pena |
- Drop T_SCALAR_CAST
|
#
17abf879 |
| 16-Aug-2011 |
Felipe Pena |
- Drop T_SCALAR_CAST
|
#
306c4202 |
| 16-Aug-2011 |
Hannes Magnusson |
Callable typehint following the rules of is_callable($arg, false);
|
#
550980cf |
| 16-Aug-2011 |
Hannes Magnusson |
Callable typehint following the rules of is_callable($arg, false);
|
Revision tags: php-5.3.7RC5, php-5.4.0alpha3 |
|
#
ad4d6d1c |
| 01-Aug-2011 |
Dmitry Stogov |
Added support for Class::{expr}() syntax (Pierrick)
|
#
74f68932 |
| 01-Aug-2011 |
Dmitry Stogov |
Added support for Class::{expr}() syntax (Pierrick)
|
#
0158804a |
| 31-Jul-2011 |
Stefan Marr |
Added __TRAIT__ magic constant [TRAITS] [DOC] # __TRAIT__ behaves like __CLASS__ more or less but is constraint to traits. # Since traits are not types, there are not many valid use cases, an
Added __TRAIT__ magic constant [TRAITS] [DOC] # __TRAIT__ behaves like __CLASS__ more or less but is constraint to traits. # Since traits are not types, there are not many valid use cases, and trying # to use __TRAIT__ to make traits more like classes is discouraged.
show more ...
|
#
dbc6849b |
| 31-Jul-2011 |
Stefan Marr |
Added __TRAIT__ magic constant [TRAITS] [DOC] # __TRAIT__ behaves like __CLASS__ more or less but is constraint to traits. # Since traits are not types, there are not many valid use cases, an
Added __TRAIT__ magic constant [TRAITS] [DOC] # __TRAIT__ behaves like __CLASS__ more or less but is constraint to traits. # Since traits are not types, there are not many valid use cases, and trying # to use __TRAIT__ to make traits more like classes is discouraged.
show more ...
|
Revision tags: php-5.3.7RC4 |
|
#
80496c9d |
| 23-Jul-2011 |
Pierre Joye |
- add short array syntax as defined in https://wiki.php.net/rfc/shortsyntaxforarrays, 2nd solution using => only
|
#
cbe0ed86 |
| 23-Jul-2011 |
Pierre Joye |
- add short array syntax as defined in https://wiki.php.net/rfc/shortsyntaxforarrays, 2nd solution using => only
|