[PHP] 最近の解決ネタ (2009-11-11)
2009年11月11日
解決というか思い出しというか。
普段はPythonで仕事しているので、
そんな人が触った時に「あれっ?」と思うようなネタが多い。(と思う)
“\n” と ‘\n’
前者は、「1バイトの 改行コード」 として、
後者は、「2バイトの 半角エスケープ+半角n の文字列」 として、評価される。
後者は、「2バイトの 半角エスケープ+半角n の文字列」 として、評価される。
シングルクォートを使用した場合は、
1. シングルクォート自身をエスケープしたい時
2. その関係で、半角エスケープ文字自体をエスケープしたい
・・・上記を除き、記述したまんまの文字列になる。(Pythonでいう r” のような)
参考) マニュアル – 文字列・引用符
foreach で 配列はインデックス順に回るか
<?php $lines = array( 3 => 444, 0 => 111, 4 => 555, 1 => 222, 2 => 333, ); foreach ($lines as $line) { echo $line . "\n"; }
と、上記はインデックス順ではなく、定義順に回るので、されない。
まぁ、PHPは全て連想配列なので、仮に回ってもキモいすね。
おとなしく for を使うべし!
マルチバイト文字を chr や ord したい
Pythonで言う、u”\u3000″ みたいなことをしたかった。
結論としてはネイティブでは無理なので、以下の参考リンクのような関数を作る必要がある。
結論としてはネイティブでは無理なので、以下の参考リンクのような関数を作る必要がある。
以上です
初心に帰りまくりで、
コードが教科書のように丁寧です。
コードが教科書のように丁寧です。