Xwab
Форумыnavigate_nextПрограммирование на PHP

ООП в PHP
Сообщения
IceJOKER

^li^, у тебя сплошной говнокод, цыгане-переменные что ли, с одного места на другое передаешь % )

у тебя объект не создается , поэтому и метод не работает или prepare возвращает не то

11 Мар 2013, 21:17
^li^

всем доброго времени суток есть некий код
$host ='localhost';
$db_name = 'test';
$db_user = 'test';
$db_pass = '12345';



class b{

private $host;
private $db_name;
private $db_user;
private $db_pass;
public $lastecho;

function __construct($host,$db_name,$db_user,$db_pass) {
$this -> host=$host;
$this -> db_name=$db_name;
$this -> db_user=$db_user;
$this -> db_pass=$db_pass;
}
/////////////////////////////////

function conect(){

try {
$this->pdo = new PDO("mysql:host=".$this->host.";dbname=".$this->db_name."", $this->db_user, $this->db_pass);
$this->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$this->pdo->beginTransaction();
return $this->pdo;
}
catch(PDOException $e) {
die("Нет соединения с базой данных");
}
}

/////////////////////////////////////

public function zapros($z){
$this->lastecho = $this->pdo->query($z);

return $this->lastecho;
}


public function array_obj($zap,$arr){
try {
$data = $this->pdo->prepare($zap);
$dat = $data->execute($arr);
print_r($dat);
return $dat;
} catch(PDOException $e) {
$this->error($e->getMessage());
}

}



public function whileout(){

while($o=$this->lastecho->fetch()){

echo $o['name'].' <br/>';

}
}


}

$s = new b($host,$db_name,$db_user,$db_pass);
$s->conect();
$t = $s->zapros("SELECT * FROM fx where name='Gans'");
echo $t->whileout();
подскажите как правильно с функции zapros передать в функцию whileout параметры чтобы через эту функцию вывести масив с бд?

14 Мар 2013, 20:45
IceJOKER

^li^, вызови с помощью одного метода другой метод в чем проблема то?

метод один
{
код...
return $data;
}

метод 2
{
$this->метод 1();

return $array;
}

14 Мар 2013, 20:58
^li^

IceJOKER, тоесть функцию вызываю получаеться?

14 Мар 2013, 21:00
IceJOKER

^li^, не функция , а метод - запомни, в теле класса функция <=> метод.

один метод может вызвать другой указав ключевое слово $this , конечно там есть тонкости - если наследуется и нужно вызвать родительский метод и т.д.

и лучше сначала хоть немного теории прочти, а то по ходу ты нифига не шаришь в этом

14 Мар 2013, 21:03
ma3uk

IceJOKER, в статических методах нужно использовать self::

14 Мар 2013, 22:18
IceJOKER

ma3uk, и это внутри класса, а если вне , то уже название класса ::Method();
я то знаю все это))

14 Мар 2013, 22:23
Popelis

Toxin, конечно не стоит, пиши все в одном файле

15 Мар 2013, 8:18
^li^

мне просто надо чтобы дали пример как в одном классе одну функцию передать другую? вот и всеи вопрос будет исчерпан

15 Мар 2013, 16:51
IceJOKER

^li^,
public function test()
{
return true;
}
public function test2()
{
$this->test(); //Вызываем соседний метод
}

15 Мар 2013, 17:21
Ответить на тему