--- /dev/null
+--TEST--
+Bug #25758 (var_export does not escape ' & \ inside array keys)
+--FILE--
+<?php
+ $a = array ("quote'" => array("quote'"));
+ echo var_export($a, true);
+?>
+--EXPECT--
+array (
+ 'quote\'' =>
+ array (
+ 0 => 'quote\'',
+ ),
+)
if (hash_key->nKeyLength==0) { /* numeric key */
php_printf("%*c%ld => ", level + 1, ' ', hash_key->h);
} else { /* string key */
- php_printf("%*c'%s' => ", level + 1, ' ', hash_key->arKey);
+ char *key;
+ int key_len;
+ key = php_addcslashes(hash_key->arKey, strlen(hash_key->arKey), &key_len, 0, "'\\", 2 TSRMLS_CC);
+ php_printf("%*c'%s' => ", level + 1, ' ', key);
+ efree(key);
}
php_var_export(zv, level + 2 TSRMLS_CC);
PUTS (",\n");