如何解决范围解析运算符不会在php中给出编译时错误
| 我创建了一个小的PDO类,并花费了数小时对其进行调试,并且找不到导致所有故障的小错字。下面要演示的是错误代码。 class MyPDO extends PDO
{
private static $instance = null;
function __construct(){
try{
parent::__construct(\"mysql:host=localhost;port=3306;dbname=blog\",\"root\",\"\");
parent::setAttribute( PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION );
}catch(PDOException $e){
echo \'Exception in constructor\'.print_r($e->trace(),true);
}
}
static public function getDB(){
if(self::$instance == null){
self:$instance = new MyPDO();
}
return self::$instance;
}
function selectAll($sql){
$stmt = self::$instance->prepare($sql);
$stmt->execute(array(\":cat_id\"=>1));
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
我想确认的是,如果有人已经看到它,或者它是一个错误,或者可以用于我不知道的其他事情。
我写的以下行有问题。
self:$ instance = new MyPDO();
它应该是具有双冒号的范围解析运算符,即
self :: $ instance = new MyPDO();
令我惊讶的是,单个冒号不会产生警告或错误。如果任何人知道这一点,请分享。
解决方法
在这种情况下,您要定义一个跳转标签(请考虑“ѭ1”)。
self: $instance = new MyPDO();
$ instance只会成为局部变量。
是的,您可以使用保留字作为标签,这是一种错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。