これは、連想配列云々では無く、プロパティ名が数字だと参照できないようです。( 0、a、2 という連想配列でテストしました )
PHP では、特別な文字列のプロパティ参照として、以下のような記述が可能です。
$z1->{'2011/07/08'}
$z1->{'日本語表示'}
※ ついでなので、可変変数でオブジェクトのプロパティを参照してみました
$v = '日本語表示';
print $z1->$v;
<?
header( "Content-Type: text/plain; Charset=shift_jis" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
// ***********************************************
// 連想配列のテスト
// ***********************************************
$x['2011/07/08'] = 2;
$x['next'] = '2011/07/15';
$x['日本語表示'] = 'ここは SHIFT_JIS です';
$z1 = (object)$x;
print "\n";
print $z1->{'2011/07/08'} . "\n";
print "{$z1->next}\n";
print "{$z1->{'日本語表示'}}\n";
// 可変変数でオブジェクトのプロパティ
$v = '日本語表示';
print $z1->$v ."\n";
print "\n";
var_dump($z1);
// ***********************************************
// 通常配列のテスト
// ***********************************************
$y[] = 2;
$y[] = '2011/07/15';
$y[] = 'ここは SHIFT_JIS です';
$z2 = (object)$y;
// 単独では表示されません??
print "\n";
print $z2->{0} . "\n";
print $z2->{'0'} . "\n";
print $z2->{"0"} . "\n";
$v = 0;
print $z2->$v . "\n";
$v = "0";
print $z2->$v . "\n";
print "\n";
// 中には入っているようですが・・・
var_dump($z2);
// ***********************************************
// その他の変換( マニュアル通りです )
// ***********************************************
$z3 = (object)'日本語表示';
print "\n";
print $z3->scalar . "\n";
print "\n";
var_dump($z3);
?>
2
2011/07/15
ここは SHIFT_JIS です
ここは SHIFT_JIS です
object(stdClass)#1 (3) {
["2011/07/08"]=>
int(2)
["next"]=>
string(10) "2011/07/15"
["日本語表示"]=>
string(21) "ここは SHIFT_JIS です"
}
object(stdClass)#2 (3) {
[0]=>
int(2)
[1]=>
string(10) "2011/07/15"
[2]=>
string(21) "ここは SHIFT_JIS です"
}
日本語表示
object(stdClass)#3 (1) {
["scalar"]=>
string(10) "日本語表示"
}
全く表示されません
最後に文字列を OBJECT に変換していますが、scalar と言うプロパティが作成されています。
ちなみに、説明の吹き出しは画像ですが、中の文字は普通の文字列で、PRE の枠の position を relative にして以下のようにして表示しています。
<img src="http://winofsql.jp/image/fd02.png" style='border:solid 0 #000;width:300px;position:absolute;left:220px;top:80px;box-shadow:none' /><div style='position:absolute;left:280px;top:160px;width:200px;font-size:20px;font-weight:bold'>全く表示されません</div>
|
|
【PHP + 特記事項の最新記事】
- PHP のファイルアップロードで画像ファイルを限定で行う為のテンプレートと注意事項と解説
- PHP : 指定ファイル名でダウンロード 『application/octet-stream』 と 『Content-disposition: attachment』
- PHP の関数で規定されているキャッシュコントロールの無効 : session_cache_limiter( 'nocache' )
- PHP : 一定時間前のファイルの削除
- PHP : ${'日本語表示'} という可変変数と、${hello . "X"} という連結可変変数
- cp932 の SQLServer に対して、PHP の ODBC 関数に対して UTF8 変換で地道に対応し、特殊なUncode文字は、HTML 数値エンティティで保存する。
- pChart2 に JKゴシックとラノベポップを使ってサンプルを作りました
- PHP の ImageMagick で作成した PNG 画像にオフセットが設定されてしまった場合の対応方法
- PHP でエラーが表示されない場合の ini_set( 'display_errors', "1" ) 使用時の注意事項
- 特に変更しても支障の無い error_append_string php.ini ディレクティブを使用して PHP 全体のデバッグに利用する
- PHP : 日本語を使った変数( 特殊文字列で変数 ) / 変数名を文字列として扱う
- PHPの真偽値
- PHP : include_path の設定
- PHP : 漢字スペースも trim






