[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите как обратиться к нескольким методам
Renden
Добрый, начинаю ООП потихоньку, пытаюсь так:

$db = new Connect();
$b = $db->query("SELECT * FROM ..")->returnArray(); //не работает
//Fatal error: Call to a member function returnArray() on a non-object in


$db->query("SELECT * FROM ..");
$b = $db->returnArray(); //так работает.


Хотелось бы писать в 1 строчку, я видел что вроде это возможно..



Спустя 14 минут, 40 секунд (29.04.2011 - 14:02) linker написал(а):
Чтобы написать так
$db->query("SELECT * FROM ..")->returnArray()
нужно в методе query() вернуть объект, в данном случае я думаю это будет $db, т.е. в конце написать
return $this;

Спустя 58 секунд (29.04.2011 - 14:03) Arni написал(а):
Вот так вот, не зная интерфейса классов мы вам и скажем.

Спустя 17 минут, 8 секунд (29.04.2011 - 14:20) Renden написал(а):
Спасибо, понятно, получилось..
Если не сложно проверьте класс, так можно писать, сойдет?)

class Connect {
private $dbhost = "localhost";
private $dbuser = "root";
private $dbpassword = "password";
public $dbname = "dev";
protected $_SQL;

function __construct() {
$this->Connect();
$this->Query("SET NAMES utf8");
}

function Connect() {
mysql_connect($this->dbhost,$this->dbuser,$this->dbpassword);
if (isset($this->dbname))
$this->Db();
}

function Db() {
mysql_select_db($this->dbname);
}

function Query($Sql) {
$this->_SQL = mysql_query($Sql);
return $this;
}

function returnArray($multi = true) {
if (mysql_num_rows($this->_SQL) > 1) {
while ($row = mysql_fetch_assoc($this->_SQL))
$rows[] = $row;
return $rows;
}
elseif($multi) {
$rows[] = mysql_fetch_assoc($this->_SQL);
return $rows;
}
else {
$row = mysql_fetch_assoc($this->_SQL);
return $row;
}
}
}


Спустя 2 минуты, 20 секунд (29.04.2011 - 14:22) linker написал(а):
Ну вроде должно работать.
Быстрый ответ:

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