严格标准:在ADONewConnection中只应通过引用分配变量

时间:2014-04-16 18:14:10

标签: php postgresql ado

我的服务器设置是

PHP 5.5.8
PostgreSQL 9.3
adodb 5

以下是错误的协调行

45 include($GLOBALS["webpath"] . "/adodb5/adodb.inc.php");
46 $conn = &ADONewConnection('postgres');
47 $conn->PConnect('host=www.site.com port=5432 dbname=database user=username password=secret');

还试过

$conn = &ADONewConnection('postgres9');

但我每次尝试运行此页面时都会收到此错误消息

Strict Standards: Only variables should be assigned by reference in /home/site/public_html/cron.php on line 46

1 个答案:

答案 0 :(得分:1)

  

严格标准:在ADONewConnection中只能通过引用分配变量

$conn = &ADONewConnection('postgres9');

您需要删除&前缀。

&前缀尝试assign a reference到函数返回值,$conn。因此$conn指的是同一个对象,而不是该对象的副本。这在PHP4中是必要的,但是,在PHP5中存储类实例的方式的改变使得这不必要。

只是稍微混淆一些事情,如果函数returned a reference,这在PHP5中实际上是有效的。但在这种情况下它并没有,因此严格的通知。通常,"只能通过引用来指定变量"。