非常に単純で、コードをべた書きできないからだと思う。文字列として渡さなければならないので、$ や " や ' を一々丁寧にエスケープしないとならないのが非常に、面倒くさい。 Perlであれば、 eval { my $i = 0; ... }; die $@ if $@;みたく書けるし、また、無名サブルーチン/関数も my $lambda = sub() { my ($a, $b, $c) = @_; ... $a + $b; };と書ける。 続きを読む PHPのスクリプトは、 <?php ... ?>の枠の「外」については、HTMLを想定してそのまま出力する。つまり、使いようによってはPerlやRubyのDATAセクションのような使い道ができるはず。これを逆手に取り、出力バッファリング関数で意図的にこの枠外の文字列を取得してしまう。 論より証拠。 hoge1.php : <?php $i