]> granicus.if.org Git - php/commitdiff
Fix comparison in case of constant NULL as default value
authorJohannes Schlüter <johannes@php.net>
Thu, 28 Aug 2014 23:34:46 +0000 (01:34 +0200)
committerJohannes Schlüter <johannes@php.net>
Thu, 28 Aug 2014 23:34:46 +0000 (01:34 +0200)
Fixes "Fatal error: Default value for parameters with a class type hint
can only be NULL in ext/phar/phar.php on line 1120" whie creating phar.phar

Zend/zend_compile.c

index ed95d7eb62e639caddb3f7dca7d2a0e028a78888..63ca671d93c58577b9e243ef08f2ad3ce156aaea 100644 (file)
@@ -5293,7 +5293,7 @@ void zend_compile_params(zend_ast *ast TSRMLS_DC) {
                        zend_bool has_null_default = default_ast
                                && (Z_TYPE(default_node.u.constant) == IS_NULL
                                        || (Z_TYPE(default_node.u.constant) == IS_CONSTANT
-                                               && strcasecmp(Z_STRVAL(default_node.u.constant), "NULL"))
+                                               && strcasecmp(Z_STRVAL(default_node.u.constant), "NULL") == 0)
                                        || Z_TYPE(default_node.u.constant) == IS_CONSTANT_AST); // ???
 
                        op_array->fn_flags |= ZEND_ACC_HAS_TYPE_HINTS;