我目前正在将我的网站从PHP5迁移到PHP7,并且我已经开始使用添加的严格输入功能.但是,这需要我使用以下行开始所有文件:
<?php declare(strict_types=1);
// All other code here
// ...
Run Code Online (Sandbox Code Playgroud)
所以我想知道,是否有任何方法可以strict_types使用像php.iniapache配置文件那样全局启用,所以我不必每次都写这行,如果是这样,我怎么能启用它?
我是一个以PHP开头的C++程序员.我发现由于未定义的变量,我失去了大部分调试时间(和我的自尊!).据我所知,处理它们的唯一方法是在执行时观察输出.
其他策略是否注意到这些错误?(类似于C++,单个编译为您提供了所需的所有线索)
感谢您的任何见解
可能重复:
PHP中的严格模式?
我正在用PHP做一个大项目.在PHP中,您不需要声明变量.这给我带来了很多问题.
在Visual Basic 6中,Option Explicit语句强制声明变量.PHP中有类似的东西吗?
try {
self::$dbinstance = new PDO(
"mysql:host=$c[host];dbname=$c[dbname]", $c['user'], $c['password']
);
self::$dbinstance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "Errors" . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,如果PDO无法连接到主机,则fatal error显示用户名和密码
Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003]
Can't connect to MySQL server on '172.25.102.65' (10060)' in
D:\xampp\htdocs\mytest\wh_client_2.1\classes\importmodule-class.php:33 Stack trace: #0
D:\xampp\htdocs\mytest\wh_client_2.1\classes\importmodule-class.php(33): PDO-
>__construct('mysql:host=172....', 'host', 'password') #1
Run Code Online (Sandbox Code Playgroud)
一种可能的方法是display_error=0关闭,php.ini但这样我无法知道我的主机没有响应时.有什么办法可以修改错误信息吗?