【发布时间】:2017-08-08 12:08:33
【问题描述】:
早安,
我有一个小问题。 想要为 str_replace 函数创建 PHP 异常,但我似乎无法做到这一点。
try {
///######## REPLACE THE PLACEHOLDERS
$template = str_replace($Source, $Target, $templateblocks[$file]);
}
catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
以上是我的代码。 这背后的原因是,在某个迭代中,它会向数组错误抛出一个字符串。 但是当我添加
if(is_array($templateblocks[$file]) === true){
echo 'an array set : print_r($templateblocks[$file], true).PHP_EOL.'<br /> file = '.$file);
}
这不起作用。所以我建议添加一个异常来解决这个问题。但我显然错过了一些东西。
提前致谢
【问题讨论】:
-
str_replace不会抛出异常,甚至不会抛出任何Throwables -
它是
Notice,它是array to string conversion。因此,您只能使用自定义事件处理程序:- php.net/manual/en/function.set-error-handler.php