php classes

Discussion in 'PHP' started by lomerok, 23 Jun 2008.

  1. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    141
    Likes Received:
    8
    Reputations:
    0
    Почему нероботает ?

    PHP:
    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;
     
  2. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    Используй __construct()

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

    Пример с документации
    PHP:
    <?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->1;
    $foo->100;
    $foo->a++;
    $foo->z++;
    var_dump($foo);
    ?> 
     
    #2 DIAgen, 23 Jun 2008
    Last edited: 23 Jun 2008
  3. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    А да, еще почитай про ООП на php нормально :)

     
    #3 DIAgen, 23 Jun 2008
    Last edited: 23 Jun 2008
    1 person likes this.