2013-08-13 4 views
-4

У меня есть два php-файла. Первый для библиотеки, а другой для функции - проблема, если я объявляю переменную за пределами класса, тогда я получаю сообщение об ошибке с неопределенной переменной. Заранее спасибо за помощь.PHP OOP доступ к глобальной переменной

lib.php

class test{ 
    public function __construct() 
    { 
     $this->_link = mysql_connect('localhost','root',''); 
     mysql_select_db('test_db', $this->_link); 
    } 
    public function query($sql) 
    { 

    } 
} 

Function.php

include_once('lib.php'); 
$lib = new test(); 

function testFunction(){ 
    $lib->query($sql); 
} 

Проблема в том, переменной $db является неопознанной и я не хочу, чтобы ввести $lib = new test() для каждой функции. Заранее спасибо.

+3

Вам действительно нужно правильно отложить свой код. Смешивание вкладок и пробелов - очень плохая идея. Кроме того, ваш код содержит синтаксическую ошибку, например. имя класса отсутствует в определении класса. Пожалуйста, не отправляйте код, содержащий синтаксические ошибки здесь! – ThiefMaster

+1

'mysql_ *' теперь ** устарел **. Пожалуйста, изучите либо * PDO *, либо * mysqli *. – christopher

+3

, если вы правильно выполняете ООП, вам не нужны глобальные переменные. – Spudley

ответ

2

Доступ к переменной внутри каждой функции, используя

function whatever($bar) { 
    global $lib; 
    $lib->foo($bar); 

или передать $ LIB в качестве параметра

function whatever($lib, $bar) { 
    $lib->foo($bar); 
0

Function.php

include_once('lib.php'); 
$lib = new test(); 

function testFunction() 
{ 
    global $lib; 
    $lib->query($sql); 
} 
0

Вы должны использовать ключевое слово global для обозначения переменной как глобальной.

Это следует использовать экономно, поскольку чрезмерное использование глобальных переменных указывает на плохой дизайн программы.

Смежные вопросы