Hello Andi, be strict
marcus Tuesday, April 27, 2004, 9:51:35 AM, you wrote: > I made this change back in December. > I guess I could revert back but I think it makes sense to be strict here. > What does the rest think? > Andi > At 03:49 AM 4/27/2004 +0000, Curt Zirzow wrote: >>I can't seem to find any discussion on this BC issue, so forgive me if >>this has already been discussed. >> >>Given the following; >> >>$a = 'a string'; >> >>/* E_ERROR Cannot use string offset as an array */ >>echo is_array($a['bar']['baz']); >> >>/* non error resolution */ >>echo isset($a['bar']['baz']) && is_array($a['bar']['baz']); >> >> >>I'm not sure, but the patch below does seem to make the E_ERROR >>get demoted to a E_WARNING, thus fixing it so execution simply doesn't >>stop when a string is referenced improperly. Or is it a *must* that php >>needs to stop in this case? >> >> >>Index: zend_execute.c >>=================================================================== >>RCS file: /repository/ZendEngine2/zend_execute.c,v >>retrieving revision 1.643 >>diff -u -r1.643 zend_execute.c >>--- zend_execute.c 15 Apr 2004 21:32:34 -0000 1.643 >>+++ zend_execute.c 27 Apr 2004 02:39:52 -0000 >>@@ -898,7 +898,9 @@ >> zval ***retval = &T(result->u.var).var.ptr_ptr; >> >> if (!container_ptr) { >>- zend_error(E_ERROR, "Cannot use string offset as an array"); >>+ *retval = &EG(uninitialized_zval_ptr); >>+ zend_error(E_WARNING, "Cannot use string offset as an array"); >>+ return; >> } >> >> container = *container_ptr; >> -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php