[PHP-users 12722] Re: [解決] : 配列を束ねて配列にする方法について

Yasuo Ohgaki php-users@php.gr.jp
Wed, 22 Jan 2003 11:24:18 +0900


大垣です。

>>でもこういう小手先のテクニックばかり使うと
>>perlみたいにどんどんスクリプトが汚くなります。
>>あまりお勧めしません。
>>
> 

似たような例を参考までにもう一つ :)

HTMLエンティティーの逆変換関数が無いんですよね。
逆変換関数のパッチをポストしていた方もいるのですが反応悪
くて、結局ボツになってしまった事もあります。

<?php
// HTMLエンティティーに変換 (HTML_SPECIALCHARに含まれているもののみ)
$str = 'HTMLに利用できない文字 & < > " をふくむ' ;
$encoded = htmlentities($str, 1, 'EUCJP'); // EUCJPを指定
var_dump($encoded);

// 逆変換を行う - ここではHTML_ENTIEISを使っても結果は同じ
$trans_table = get_html_translation_table(HTML_ENTITIES);
$trans_table = array_flip($trans_table); // テーブルをキーと値を交換
$original = strtr($encoded, $trans_table);
var_dump($original);
?>

逆変換はこんな感じで書けて難しくはないのですが、1行で書く事もで
きて

$original = strtr($encoded, array_flip(get_html_transalation_table(HTML_ENTIEIS)));

となります...
お世辞にも初心者向きとは言い難いのでは、と思っています。

> これに関連して,マニュアルの他言語との比較の項,
> PHP vs. Perlで,冒頭に
> 
> 「PHPのPerlに対して最も有利な点ははPerlが何もかもやろうと
> してその結果複雑になってきているのに対して、PHPはウェブ
> スクリプティングを念頭においてデ ザインされていること...」
> 
> とありますが,PHPが同じ轍を踏まないか少し心配です・・・。

PERLのコードが読みづらい、と言われる主な理由は「同じ事は他の方
法でもできる」と言う設計思想にあると思います。しかも、その多くが
記号的な表記で短く表現する事ができる事にあると思います。少なくと
も、私は自分がなれた方法以外のコーディングがされているPERLソース
は読みづらいです。

# この設計思想は便利さと表裏一体でもあると思います。
# 1行から数行の短い記述でできる事が多く、便利なので perl -pi ...
# などは何年先になっても使っていると思います。

色々な事ができる != 解りづらいコードになる、ではなく
同じ事が色々な方法でできる == 解りづらいコードになる、
と言う事ではないかと思います。

PHPは同じ事ができる複数の手法はできるだけ取り入れない事になって
いるのでPERLのように色々な短縮記号のようなシンボルやオペレータ
は追加されないと思います。

--
Yasuo Ohgaki