0

str_getcsv()またはのような便利な関数を使用したいという問題が発生し続けていquoted_printable_encode()ますが、PHP5.3の時点で発生したのはその間だけです。私が書いているこのコードを少なくとも5.2と互換性があるようにしたいのですが、たくさんの特殊なコードを書く必要はありません。

PHP.netのコメントから代用関数を取得し、それらをのような名前の付いたファイルに保存し、それらfunc.quoted_printable_encode.phpを呼び出したい場所に次のようなブロックを書き込む習慣を身に付けました。

if( ! function_exists('quoted_printable_encode') ) {
    $funcfile = 'func.quoted_printable_encode.php';
    if( file_exists($funcfile) && is_readable($funcfile) ) {
        require('func.quoted_printable_encode.php');
    } else {
        Throw new Exception('Cannot invoke function: quoted_printable_encode');
    }
}

__autoload()これは、クラスやオブジェクトメソッドの場合と不気味に似ているように見え__call()ますが、グローバル関数に関しては何も見つかりません。そのようなものは存在しますか、それともこれらすべての余分な関数をどこかのヘッダーファイルにシューホーンする必要がありますか?

4

1 に答える 1

1

PHP で関数を自動ロードする方法はありません。RFCはありますが、実装されていません (おそらく実装されないでしょう)。

本当に関数を自動ロードしたい場合は、関数を静的メソッドとして実装するヘルパー クラスを作成するのが理にかなっています。フレームワークでは、そのようにすることは非常に 一般的です。

于 2013-02-08T00:25:51.633 に答える