私はPHPとプログラミングの経験がまったくないので、自分の状況で最善の決定が何であるかを知りたいと思います。これが私のコードサンプルです:
public static function isAscii($string, $type, $length = -1)
{
if (!is_string($string))
throw new InternalException(ExceptionMessage::invalidFunctionParameterType(__CLASS__, __METHOD__));
if ($length !== -1 && !Str::isValidLength($string, $length))
return FALSE;
$ascii_array = Constants::asciiRegex();
if (!preg_match($ascii_array[$type], $string))
return FALSE;
return TRUE;
}
$type
配列にキーが存在することを確認したい$ascii_array
。それを行うための最良の方法は何ですか?
私は2つの決定を提供することができます:
- もっとも単純な。機能を使って手動でキーの存在を確認するだけ
array_key_exists()
です。キーが存在しない場合は、手動でも例外をスローします。しかし、これは良い考えではないと思います。この条件をチェックするのは冗長です。何も書かないとPHPコンパイラーが警告を生成し(注意:未定義のインデックス:)、これを何らかの方法で使用したいからです。OutOfBoundsException
やのような事前定義された例外がいくつかあるOutOfRangeException
ことがわかりました。Javaのようにそれらを使用するのは簡単ですが、PHPはこれらの例外をスローせず、警告とエラーのみをスローするようです。 - 関数を使用
set_error_handler()
して、エラーと警告を例外に「変換」します。しかし、別の問題があります-考えられるすべてのエラーをどのように処理できますか?PHPのエラーと警告の完全なリストを見つけようとしましたが、存在しません。ですから、この問題を解決する方法がわかりません。助けてください。よろしくお願いします。英語力が下手でも私の質問を理解していただければ幸いです。
PSこれは、さまざまなタイプのASCII文字列の正規表現を含む配列です。