[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysqli и ООП
phynfex
возникала такая проблема, описываю класс:
PHP
class classname
{    
    public 
$link;
    public function 
__construct()
    {
        
$link=mysqli_connect("127.0.0.1","name","pass");
        
mysqli_select_db($link"db_name");
    }
    
    public function 
add()
    {
        
mysqli_query($link"INSERT INTO employee VALUES('','name', 'phone', '0')");
    }
}

И каждый раз раз когда обращаюсь к функции add вылазит ошибка:

Notice: Undefined variable: link in /var/www/classname_def.php on line 14

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /var/www/Tutorials.php on line 14


Я так понимаю, что переменная $link, содержащая соеденение БД обнуляется. Как этого избежать?



Спустя 35 минут, 4 секунды (8.03.2009 - 10:42) Sylex написал(а):
Цитата
Notice: Undefined variable: link in /var/www/classname_def.php on line 14


неопределенная переменная, убери свой $link.

И это не функция, а метод smile.gif

К методам и свойствам объекта внутри объекта можно обращаться так:
PHP
<?php
$this
->link
$this
->add()

Спустя 10 минут, 2 секунды (8.03.2009 - 10:52) sergeiss написал(а):
При использовании в классе переменной этого класса надо указывать перед ней $this. Иначе ПХП тебя просто не поймет.

В твоем случае вместо $link надо писать внутри кода класса $this->link везде, кроме объявления самой переменной.

Эту "фишку" можно использовать, допустим, при установке переменных.
Вот ты объявил, например, переменную класса
PHP
var $val;

И делаешь функцию установки значения этой переменной:
PHP
function set$val )
{
  
$this->val=$val;
}

Здесь $this->val - это переменная твоего класса, а $val - это переменная, переданная в качестве параметра.

PS. Sylex - первонах wink.gif , опередил меня.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.