[PHP-users 18270]Re: var_exportでクォートされない
Seiji Masugata
s.masugata @ digicom.dnp.co.jp
2003年 10月 6日 (月) 12:40:26 JST
こんにちわ、桝形です。
> var_exportでシングルクォートがクォートされないようです。
>
> <?
> $test = array( "quote'" => array( "quote'" ) );
> echo var_export($test,true);
> ?>
> 出力
> array ( 'quote'' => array ( 0 => 'quote\'', ), )
>
> 原因をご存じの方ご教授下さい。
# 斜め読みなので、はずしている可能性アリです。
ざっと、ソースを眺めてみると、
/usr/local/src/php-4.3.4RC1/ext/standard/var.c:
249行目〜
static int php_array_element_export(zval **zv, int num_args, va_list args, zend_hash_key *hash_key)
{
281行目〜
PHPAPI void php_var_export(zval **struc, int level TSRMLS_DC)
{
Keyの値まではクォートしていないような動作です。
Keyの値で使用できる時点で、正しくない挙動とは言えるのかも
しれませんが、個人的には言語の仕様以前にKeyの値に'をつける
のはどうかな。。。と感じます。。。それはさておき。
あまり参考にならないのですが、
http://bugs.php.net/report.php
からメッセージを送信して確認しては?
本家の人にBugだと認識して頂ければ直してもらえるかもしれません。
更に、都合のよい?事にPHP4,3,4RC1のQA中ですので、確立はUPして
いるかもしれません。
hash_key->arKeyに対して、php_addcslashes(に相当する)処理をして
あげればよいような。。。ぼそっ。
--
Seiji Masugata <s.masugata @ digicom.dnp.co.jp>
PHP-users メーリングリストの案内