• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

parent:: - Co to jest?

0 głosów
2,572 wizyt
pytanie zadane 19 kwietnia 2015 w PHP przez HaKIM Szeryf (87,590 p.)
edycja 19 kwietnia 2015 przez HaKIM

Hej. Mam pytanie, co to jest parent:: i jak go stosować?

Np: 

class jakasklasa{
    function __construct(){
        parent::__construct();
        $this -> load -> database();
    }
}

Jaką rolę w tym przykładzie odgrywa parent::?

2 odpowiedzi

+1 głos
odpowiedź 19 kwietnia 2015 przez efiku Szeryf (75,160 p.)
wybrane 19 kwietnia 2015 przez HaKIM
 
Najlepsza

Jeżeli dziedziczysz z jakiejś klasy bazowej

w której jest konstruktor z jakąś logiką 

a w twojej klasie pochodnej też jest konstruktor

i chcesz aby wykonała się logika z konstruktora klasy bazowej 

wtedy stosujesz parent::

i po tym dajesz swoją logikę

<?php
class Base{ 
  public function __construct() {
     // do your job Base!
  }

class MyClass extends Base {
  
 public function __construct(){
   parent::__construct(); // do your job Base!
  // Now MyClass construct logic
  }
}

Mam nadzieję, że na szybko wytłumaczyłem :P Idę spać cześć! :)
Pozdrowiam.

komentarz 19 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)

Np: 

<?php
class Base{ 
  public function __construct() {
     // do your job Base!
    $DBH = new PDO("mssql:host=$host;dbname=$dbname, $user, $pass");
  }
 
class MyClass extends Base {
   
 public function __construct(){
   parent::__construct(); // do your job Base!
    // Now MyClass construct logic
    $STH = $DBH->prepare("INSERT INTO folks ( first_name ) values ( 'Cathy' )");
    $STH->execute();
  }
}

?

komentarz 19 kwietnia 2015 przez efiku Szeryf (75,160 p.)

1. łap połączenie PDO w try catch bo się przejedziesz jak się nie połaczy ;-)

2. jak już cos to do base daj

protected $DBH;

 w konstruktorze $this->DBH = pdo w try catch. 

$host;dbname=$dbname, $user, $pass  - Jako parametry do konstruktora

 

Myclass

Po co pchasz na siłę do konstruktora prepare i execute ? on nie sluzy do tego :x

no ale mniej wiecej tak jak myslisz

 

komentarz 19 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)
Żeś się napisał, a ja podałem zlepkę linijek z neta.

Nie korzystam z tego, daltego to takie pomerdane.

To było tylko takie pytanie, czy dobrze myślę - że o to chodzi.

Sorka za składnie, ale jest 02:27. : p

Dzięki.
komentarz 19 kwietnia 2015 przez efiku Szeryf (75,160 p.)
haha jak widzisz mi też to odpisywanie cos nie idzie bo czcionki  cos nie halo haha ;D

Tak mniej więcej tak :)

Czasami to jest przydatne, a czasami nie :D

Nie bój się robić getterów i setterów, a w konstruktorze inicjuj tylko zmienne np połaczenia z bazą, później sobie rób metody np findOneBy($id) itd.

Zerknij sobie na te cuda: https://github.com/adambray89/php-facebook-chat/blob/master/includes/database.php

https://github.com/adambray89/php-facebook-chat/blob/master/includes/session.php
komentarz 19 kwietnia 2015 przez Boshi VIP (100,240 p.)
Powinieneś zrozumieć teraz.  Przy okazji tutaj jest pokazany polimorfizm.  
dodam, że do statycznych używamy słowa self::

class figura
{
		
		public function  rysuj()
		{
			echo "narysowałem figure";
		}
}		

 class Kolo extends figura
 {
		
		public function  rysuj()
		{
			parent::rysuj();
			echo "narysowałem kolo";
		}
		
 }
 
 $K=new Kolo;
 $K->rysuj()

 

komentarz 19 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)
Kumam, dzięki. :***
+2 głosów
odpowiedź 19 kwietnia 2015 przez Boshi VIP (100,240 p.)

Wywołanie metody z klasy bazowej.. tutaj  nie odgrwa żadnej roli, bo nie ma co wywoływać.

Mogło by tak wyglądać; Wtedy musisz wywołać konstuktor bazowy ręcznie inaczej dostaniesz błąd. Chyba, że nie tworzysz własnego konstruktora w klasie podrzędnej to wtedy wywoływany jest domyślnie bazowy.

class jakasklasa extends baseclass{
    function __construct(){
        parent::__construct();
       
    }
}

 

komentarz 19 kwietnia 2015 przez efiku Szeryf (75,160 p.)
Od razu daję plusika :D
komentarz 19 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)
To jest przykład z kursu CodeIgnitera. ; )
komentarz 19 kwietnia 2015 przez efiku Szeryf (75,160 p.)

Poczytaj sobie tutaj komentarze (CodeIgniter)

Podobne pytania

0 głosów
1 odpowiedź 213 wizyt
pytanie zadane 18 października 2018 w JavaScript przez Oskar Szkurłat Bywalec (2,780 p.)
0 głosów
2 odpowiedzi 873 wizyt
pytanie zadane 3 marca 2020 w JavaScript przez xshaoox Początkujący (280 p.)
0 głosów
1 odpowiedź 259 wizyt
pytanie zadane 14 grudnia 2019 w JavaScript przez VGB Początkujący (370 p.)

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...