PHP küresel anahtar kelime ve $ GLOBALS sürüm 5.3 çalışmak için görünmüyor

2 Cevap php

I seem to have this problem after upgrading to PHP 5.3 from 5.2.
The site runs off index.php which includes() various other utility functions then includes the correct page based on GET variable value.

Now one thing I cannot understand is that in xdebug I dont see $GLOBALS. The other bit is -

index.php:

include_once('includes/global.inc.php');  
include_once("classes/db.inc.php");  
$db = new db();  

global.inc.php:

$glob['dbusername'] = 'myusername';  
$glob['dbpassword'] = 'mypassword';
//etc  

db.inc.php db adında bir sınıf bildirir:

class db  
{  
 function db()  
 {  
  global $glob;  
  $this->db = @mysql_connect($glob['dbhost'], $glob['dbusername'], $glob['dbpassword']);  
 }  
} // end of db class  

Sorun, ben db bir kesme noktası () koyarsanız, ben $ topak göremiyorum ve hata onun başlatılmamış söylüyor olması.

2 Cevap

$ Glob Eclipse xdebug boş görünüyor neden Tamam, burada. PHP 5.3 ile birlikte kullanıldığında, bu xdebug 2.0.5 ile bir hatadır. Bkz http://bugs.xdebug.org/view.php?id=376

Bu yüzden PHP MySQL bağlanmak mümkün olmayan aşağı kaynar ... (I), (i php_mysql.dll etkin ve apache hata günlükleri, temiz ve Phpinfo neden bilmiyorum MySQL yolunda gösterir)

Ben şimdi PHP.ini avcılık ediyorum ...

Içerir globals kullanırken benzer sveyaunlar vardı. Ben gerçekten etrafında gerçekten aşağı ne var asla - bazen kendi kapsamı vardı içerir gibiydi. (Eğer bir işlev içinde dosyayı dahil eğer dahil işlevin kapsamını devralır, çünkü, elbette, çalışamaz.)

Ben bunlardan birini kullanıyveyasanız çalışır bahis:

global $glob;
$glob['dbusername'] = 'myusername';  
$glob['dbpasswveyad'] = 'mypasswveyad';

veya

$GLOBALS["glob"]['dbusername'] = 'myusername';  
$GLOBALS["glob"]['dbpasswveyad'] = 'mypasswveyad';

Eğer ayıklayıcısında $GLOBALS göremiyorum ki aslında bu gerçek bir değişken değil, çünkü belki, ama bir kurgudur.