相关疑难解决方法(0)

PHP try-catch块:它们能够捕获无效的arg类型吗?

背景:假设我有以下显然不正确的PHP:

    try{
        $vtest = '';
        print(array_pop($vtest));
    }catch(Exception $exx){}
Run Code Online (Sandbox Code Playgroud)

为了使用array_pop,$ vtest显然应该是一个数组,而不是一个字符串.然而,当我运行此代码时,会显示警告.我不希望这样,我只是希望代码无声地失败.

问题:与其他语言相比,PHP try-catch是否有一些特殊之处导致这种情况无效?

免责声明: 仅供参考,确实有其他方法可以在PHP中处理这种情况,但这些都是不可取的.这里的目标是避免:

"签名"技巧:

        $vtest = '';
        print(@array_pop($vtest)); // <-- would like to avoid this
Run Code Online (Sandbox Code Playgroud)

类型铸造:

        $vtest = '';
        $vtest = (array)$vtest;  
        print(array_pop($vtest));
Run Code Online (Sandbox Code Playgroud)

php arrays exception try-catch

14
推荐指数
2
解决办法
7412
查看次数

将用户提交的值转换为本地值

我正在创建一个metacritic类型的网站,用户链接评论帖子(来自外部来源).

在表单中,我允许用户选择源站点使用的评级类型:

评分

例如,源后可以评价50出的100.

要在我的网站上显示评级,我想将源评级转换为简单的5星评级.因此,上述例子的评级变为2.5

我的问题是,在考虑性能和效率时,PHP在制作这些类型的计算时最好的方法是什么?

我很难找到一个好的手段去,尤其是A+等等......

php algorithm

5
推荐指数
1
解决办法
229
查看次数

仅为部分代码禁用PHP警告

要禁用PHP警告,您需要在php.ini中设置以下参数

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = On
Run Code Online (Sandbox Code Playgroud)

要么

display_errors = Off
Run Code Online (Sandbox Code Playgroud)

上述方法将禁用警告整个项目.有没有办法只禁用一段PHP代码的警告,即禁用某些功能或几行代码的警告?

php warnings

2
推荐指数
1
解决办法
3456
查看次数

在php上抑制mysql错误

我知道通常可以使用error_reporting(0)或'@'来抑制php错误.我有很多的SQL查询我的工作的某部分被解雇了,我想知道,它增加的error_reporting(0)抑制来自MySQL的查询引起的误差的出现?

我在线阅读不同的答案.有些人表示会有所帮助,而有些人则表示不会那样工作.

php mysql error-handling

1
推荐指数
1
解决办法
5654
查看次数