PDA

Просмотр полной версии : php classes


lomerok
23.06.2008, 11:41
Почему нероботает ?


class mysql
{
public $h;
public $u;
public $p;
public $d;
public $q;
public $otvet;
function connect()
{
mysql_connect($h,$u,$p) or die("error 1 host=$h,user=$u,pass=$p");
mysql_select_db($d) or die("error 2 base=$d");
}
public function query()
{
$o=mysql_query($q) or die("error 3");
$otvet=mysql_fetch_row($o);
return $otvet;
}
}
$h='localhost';
$u='root';
$p='';
$d='test';
$q='SELECT * FROM news';
$test=new mysql($h,$u,$p,$d,$q);
print "host=$h,user=$u,pass=$p,base=$d,query=$q";
$test->connect();
$test->query();

print $otvet;

DIAgen
23.06.2008, 11:47
Используй __construct()

и еще
void __set ( string $имя, mixed $значение )
void __get ( mixed $имя )

Пример с документации
<?php
class Setter {
public $n;
private $x = array("a" => 1, "b" => 2, "c" => 3);

function __get($nm) {
print "ЧИтаем [$nm]\n";

if (isset($this->x[$nm])) {
$r = $this->x[$nm];
print "Получили: $r\n";
return $r;
} else {
print "Ничего!\n";
}
}

function __set($nm, $val) {
print "Пишем $val в [$nm]\n";

if (isset($this->x[$nm])) {
$this->x[$nm] = $val;
print "OK!\n";
} else {
print "Всё плохо!\n";
}
}
}

$foo = new Setter();
$foo->n = 1;
$foo->a = 100;
$foo->a++;
$foo->z++;
var_dump($foo);
?>

DIAgen
23.06.2008, 11:56
А да, еще почитай про ООП на php нормально (:

http://www.php.net/manual/ru/language.oop5.php