[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 メーリングリストの案内