Advertisement
Guest User

Untitled

a guest
Mar 6th, 2015
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.71 KB | None | 0 0
  1.    
  2.  
  3.     abstract class Db {
  4.             //apakšā pateikšu ko abstract nozīmē
  5.      
  6.             //protected nozīmē mainīgias būs pieejams pašai klasei un visām klasēm kas viņu extendo
  7.             protected $this->dbh;
  8.      
  9.             //private nozīmē ka mainīgais būs pieejams tikai Db klasei
  10.             private $this->host = 'localhost';
  11.             private $this->database = 'test'
  12.             private $this->db_username = 'root';
  13.             private $this->db_password = 'password';
  14.      
  15.             protected function connect(){
  16.                     $this->dbh = new mysqli($this->host, $this->db_username, $this->db_username, $this->database);
  17.             }
  18.      
  19.     }
  20.      
  21.     //kad kāda klase extendo citu klasi viņa var izmantot visas publiskās un protected, bet ne privātās funkcijas kas pieder parent klasei, šajā gadījumā Db.
  22.      
  23.      
  24.     class User extends Db{
  25.             // __construct funkcija tiek izsaukta katru reizi kad no klases tiek uztaisīts objekts(par to zemāk)
  26.             public function __construct(){
  27.                     $this->connect();
  28.             }
  29.      
  30.             public function getName($id){
  31.                     //varam izmantot dbh, jo viņš ir protected un pieder parent klasei.
  32.                     $name = $this->dbh->query("SELECT name FROM users WHERE id=".$id);
  33.                     return $name;
  34.             }
  35.            
  36.         //testa pēc uztaisam privātu funkciju
  37.             private function getPosts($id){
  38.                     $name = $this->dbh->query("SELECT posts FROM users WHERE id=".$id);
  39.                     return $name;
  40.             }
  41.      
  42.     }
  43.      
  44.     //Lai izmantotu klases funkcijas klase jāpārtaisa par objektu, lai to izdarītu to vajag instantiatot, nezinu kā latviski to sauc, bet angliski sauc instantiate, īsi sakot vienkāršu uzraksti new Klases_nosaukums;
  45.     //tagad arī tiek izsaukta User klases __construct funkcija
  46.     $user = new User;
  47.      
  48.     //tagad $user ir kļuvis par objektu var izmantot tās klases publiskās funkcijas un piekļūt tās klases publiskajiem mainīgajiem
  49.     $name = $user->getName(1);
  50.      
  51.     //šādi nevarēs izdarīt jo funkcija ir privāta
  52.     $user->getPosts(1); //atgriezīs erroru Call to private method User::getPosts()
  53.      
  54.      
  55.     //abstract, ko es pieliku klāt Db klasei nozīmē ka klasi var tikai extendot, funkciju ziņā abstract ir cita nozīme bet negribu par daudz runāt.
  56.     //to es izdarīju tāpec ka Db klases vienīgais mērķis ir izveidot savinojumu ar datubāzi priekš citām klasēm, tāpēc nav nekādas vajadzības to jebkad pārtaisīt par objektu
  57.     new Db; //atgriezīs erroru Fatal error:  Cannot instantiate abstract class Db in
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement