Hey Marcus, Derick,
After the millions of discussions on this topic it would have been
better to share this patch with everyone before commiting.
In any case, as I could never think of a better syntax to deal with
the somewhat harmless ambiguity of default value and "allowing" null,
I don't mind having this patch. It should be documented though that
this syntax comes to serve both purposes.
I do suggest though, that you perfect the patch to make sure that
using values other than null is a compile-time error and not only
caught at run-time. I'm talking about the following function decleration:
function testNull(MyClass $obj = 1) {
}
Thanks,
Andi
At 05:54 AM 10/15/2005, Derick Rethans wrote:
derick Sat Oct 15 08:54:20 2005 EDT
Modified files:
/php-src NEWS
/ZendEngine2 zend_compile.c
Log:
- Changed type hints so that they take "= NULL" as default value.
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.2069&r2=1.2070&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2069 php-src/NEWS:1.2070
--- php-src/NEWS:1.2069 Mon Oct 3 08:07:19 2005
+++ php-src/NEWS Sat Oct 15 08:54:18 2005
@@ -2,6 +2,8 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 6.0
- Unicode support. (Andrei, Dmitriy, et al)
+- Changed type hints so that they take "= NULL" as default value. (Marcus,
+ Derick)
- Changed __toString() behavior to call it in all necessary places
(Marcus, Dmitry)
- Changed "instanceof" and "catch" operators, is_a() and is_subclass_of()
http://cvs.php.net/diff.php/ZendEngine2/zend_compile.c?r1=1.667&r2=1.668&ty=u
Index: ZendEngine2/zend_compile.c
diff -u ZendEngine2/zend_compile.c:1.667 ZendEngine2/zend_compile.c:1.668
--- ZendEngine2/zend_compile.c:1.667 Mon Oct 10 06:50:35 2005
+++ ZendEngine2/zend_compile.c Sat Oct 15 08:54:19 2005
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_compile.c,v 1.667 2005/10/10 10:50:35 dmitry Exp $ */
+/* $Id: zend_compile.c,v 1.668 2005/10/15 12:54:19 derick Exp $ */
#include <zend_language_parser.h>
#include "zend.h"
@@ -1337,7 +1337,7 @@
cur_arg_info->class_name = NULL;
cur_arg_info->class_name_len = 0;
}
- cur_arg_info->allow_null = 0;
+ cur_arg_info->allow_null = (op == ZEND_RECV_INIT &&
(Z_TYPE(initialization->u.constant) == IS_NULL ||
(Z_TYPE(initialization->u.constant) == IS_CONSTANT &&
!strcasecmp(Z_STRVAL(initialization->u.constant), "NULL")))) ? 1 : 0;
} else {
cur_arg_info->class_name = NULL;
cur_arg_info->class_name_len = 0;
--
Zend Engine CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Zend/PHP Conference & Expo
Power Your Business with PHP
October 18-21, 2005 - San Francisco
http://zend.kbconferences.com/
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php