目的の結果を得るために、いくつかの関数を介して変数を実行しようとしています。
たとえば、テキストをスラッグ化する関数は次のように機能します。
// replace non letter or digits by -
$text = preg_replace('~[^\\pL\d]+~u', '-', $text);
// trim
$text = trim($text, '-');
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// lowercase
$text = strtolower($text);
// remove unwanted characters
$text = preg_replace('~[^-\w]+~', '', $text);
ただし、この例にはパターンがあることがわかります。変数は、次の$text
ような5つの関数呼び出しを介して渡されますpreg_replace(..., $text) -> trim($text, ...) -> iconv(..., $text) -> strtolower($text) -> preg_replace(..., $text)
。
いくつかの関数を介して変数ふるいを許可するコードを書くことができるより良い方法はありますか?
1つの方法は、上記のコードを次のように記述することです。
$text = preg_replace('~[^-\w]+~', '', strtolower(iconv('utf-8', 'us-ascii//TRANSLIT', trim(preg_replace('~[^\\pL\d]+~u', '-', $text), '-'))));
...しかし、この書き方は冗談であり、嘲笑です。コードの可読性を妨げます。