Skip to content

Commit f735a31

Browse files
committed
Helpers::dump() in single quotes strings escapes \ only when needed
1 parent 307892b commit f735a31

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

src/PhpGenerator/Helpers.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ private static function _dump(& $var, $level = 0)
5858
}
5959
return '"' . strtr($var, $table) . '"';
6060

61+
} elseif (is_string($var)) {
62+
return "'" . preg_replace('#\'|\\\\(?=[\'\\\\]|\z)#', '\\\\$0', $var) . "'";
63+
6164
} elseif (is_array($var)) {
6265
$space = str_repeat("\t", $level);
6366

tests/PhpGenerator/Helpers.dump().phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ Assert::same( "''", Helpers::dump('') );
2222
Assert::same( "'Hello'", Helpers::dump('Hello') );
2323
Assert::same( "'I\xc3\xb1t\xc3\xabrn\xc3\xa2ti\xc3\xb4n\xc3\xa0liz\xc3\xa6ti\xc3\xb8n'", Helpers::dump("I\xc3\xb1t\xc3\xabrn\xc3\xa2ti\xc3\xb4n\xc3\xa0liz\xc3\xa6ti\xc3\xb8n") ); // Iñtërnâtiônàlizætiøn
2424
Assert::same( '"\rHello \$"', Helpers::dump("\rHello $") );
25+
Assert::same( "'He\\llo'", Helpers::dump('He\llo') );
26+
Assert::same( '\'He\ll\\\\\o \\\'wor\\\\\\\'ld\\\\\'', Helpers::dump('He\ll\\\o \'wor\\\'ld\\') );
2527
Assert::same( 'array()', Helpers::dump(array()) );
2628

2729
Assert::same( "array(\$s)", Helpers::dump(array(new PhpLiteral('$s'))) );

0 commit comments

Comments
 (0)