我根本没有足够的 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;
}
我想确保 key$type
存在于 array $ascii_array
。最好的方法是什么?
我可以提供两个决定:
- 最简单的。只需使用
array_key_exists()
功能手动检查密钥是否存在。如果 key 不存在 - 也手动抛出异常。但我认为这不是一个好主意,检查这个条件是多余的,因为如果我不写任何东西,PHP 编译器会生成警告(注意:未定义索引:)我想以某种方式使用它。我发现有一些预定义的异常,比如OutOfBoundsException
andOutOfRangeException
,像在 Java 中一样使用它们会很容易,但是 PHP 似乎不会抛出这些异常,只会抛出警告和错误。 - 使用
set_error_handler()
函数将错误和警告“转换”为异常。但是还有另一个问题 - 我如何处理所有可能的错误?我试图找到 PHP 错误和警告的完整列表,但它不存在。所以我不知道如何解决这个问题,请帮助我。在此先感谢,即使我的英语水平很差,也希望您能理解我的问题。
PS 这是一个包含不同类型 ascii 字符串的正则表达式的数组。