2012-08-02 13 views
36

I Aggiornamento di MyPHP Versione 5.4 (Xampp 1.7.3 a 1.8.0). Ora vedo standard rigorosi errore, per myDBconnection:Standard rigorosi: solo le variabili devono essere assegnate con il riferimento PHP 5.4

standard rigorosi: solo le variabili devono essere assegnati di riferimento in C: \ xampp \ htdocs \ Alous \ include \ dbconn.php sulla linea 4

dbconn.php:

<?php 
defined('_VALID') or die('Restricted Access!'); 

$conn = &ADONewConnection($config['db_type']); // <--- This Line 4 

if (!$conn->Connect($config['db_host'], $config['db_user'], $config['db_pass'], $config['db_name'])) { 
    echo 'Could not connect to mysql! Please check your database settings!'; 
    die(); 
} 
$conn->execute("SET NAMES 'utf8'"); 
?> 

Nota: non ho bisogno di disattivare rigidi standard in php.ini con questo metodo error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT! Voglio sistemare il mio codice PHP.

+0

L'avviso scompare se si modifica la riga 4 in '$ conn = ADONewConnection ($ config ['db_type']);' –

risposta

67

È necessario rimuovere il simbolo & (e commerciale), in modo che la linea 4 sarà simile a questa:

$conn = ADONewConnection($config['db_type']); 

Da php's manual on assignment by reference:

Dal PHP 5, l'operatore new restituisce un riferimento automaticamente, quindi assegnando il risultato di nuovi risultati di riferimento in un messaggio E_DEPRECATED in PHP 5.3 e versioni successive e un messaggio E_STRICT nelle versioni precedenti .

+5

Non sta utilizzando 'new'. – sam

+12

Sì, '&' dovrebbe essere rimosso in questa istanza, ma non per il motivo give (come suggerisce @sam). È semplicemente che il risultato del compito non è una variabile_, che risulta in un messaggio E_STRICT, non un avvertimento E_DEPRECATED, che è ciò che accade con l'operatore 'new'. In effetti, l'uso di '= &' potrebbe effettivamente essere valido se la 'funzione_funzione_di ADONewConnection() è impostata su [restituire un riferimento] (http://www.php.net/manual/en/language.references.return.php). – MrWhite

8

È perché stai cercando di assegnare un oggetto per riferimento. Rimuovi la e commerciale e il tuo script dovrebbe funzionare come previsto.

-13

Ho avuto questo problema anche.

non ho visto alcun cambiamento dopo aver modificato:

error_reporting = E_ALL 

display_errors = Off 

chiuso il mio browser e arrestato e avviato Apache in xamp en messaggi di errore erano spariti.

+8

Nascondere l'errore non è una soluzione! – kanenas

+0

Nascondere l'errore non è una buona soluzione. Sfortunatamente, è una "soluzione" che ho bisogno di trovare di volta in volta un'altra soluzione migliore. –

Problemi correlati