tohokuaikiのチラシの裏

技術的ネタとか。

「お」っていうPHPの書き方

ワンライナー

PHPの思想と言語表現 - Lism.in * blog - nekoya (id:studio-m)

どちらが優れているということではなく、ましてや「PHPは初心者向けの言語」という話でもありません。純粋に思想の違いです。

確かに。たとえば、

<?php
$int = intval($string);
$int = (int)$string;

ってあった場合、私は前者を好んで使う。実は後者の方が実行速度は速い

itoh@colinux:~$ time php -r '$s="1234567890";for(;;){if($i++>1000000)break;(int)$s;}'

real 0m0.570s
user 0m0.500s
sys 0m0.070s



itoh@colinux:~$ time php -r '$s="1234567890";for(;;){if($i++>1000000)break;intval($s);}'

real 0m1.060s
user 0m0.980s
sys 0m0.080s

だが、(int)を使う人はあまり見ない気がする。なんていうか、そういう感じ。嫌いな人は嫌いなんだろうけど。*1

Perlコマンドラインからワンライナーで書きたいな〜っていうのもあって、様々な省略記法もあるんだろうけど、PHPでワンライナーがっつり書いたりすると変態くさいとか感じてしまったり(笑)。

でも、たまにある

PHPでも、たま〜にあります。「へぇー」って書き方。そして、ほとんど使いません。

<?php
is_null($foo) and $foo = "hoge";
is_null($bar) or $bar = "uki";
<?php
switch ($foo){
    case $foo > 0 && $foo <=100:
       echo '\$foo is lower than 100';
       break;
}
<?php
$str = "abcdefghijklmn";
echo $str{10}; // k
echo $str[10]; // k


あれ?3つしか上げられない(苦笑)

*1:ただ、さすがにpreg_*とereg_*どっち使うって言われたら、速度を気にしてpreg_*を使います。コストでかいから。