Kabilin sa PHP OOP

I

Unsa ang Kabilin?

Kung ang usa ka klase naggikan sa lain nga klase, kini nailhan nga kabilin. Ania ang pipila ka importante nga mga termino nga may kalabutan sa kabilin sa PHP.

  • Klase sa Ginikanan – Ang klase diin gikan ang ubang mga klase gitawag ug ginikanan nga klase. Nailhan usab kini nga base nga klase.
  • Klase sa Bata – Ang klase nga nakuha gikan sa laing klase gitawag nga child class. Adunay uban pang mga ngalan niini sama sa klase sa dahon o nakuha nga klase.
Kabilin sa PHP

Giunsa ang pagpanunod sa usa ka klase sa PHP?

Ang usa ka klase mahimong mapanunod pinaagi sa paggamit naglugway keyword. Tan-awa ang mosunod nga pananglitan.

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  public function intro() {
    echo "The fruit is {$this->name} and the color is {$this->color}.";
  }
}

// Apple is inherited from Fruit
class Apple extends Fruit {
  public function message() {
    echo "I am from Fruit class or Apple one? ";
  }
}
$apple= new Apple("Apple", "red");
$apple->message();
$apple->intro();
?>

Sa pananglitan sa ibabaw

  • Naghimo kami usa ka base o klase sa ginikanan nga prutas nga adunay pipila nga mga kabtangan ug pamaagi.
  • Naghimo kami og lain nga klase nga mansanas nga nagpalapad / nakapanunod sa ginikanan nga klase nga Fruit gamit ang extends nga keyword.
  • Paghimo apple instance/object ug i-access ang fruit class method gamit ang inheritance.

Sa pagtapos sa pasiuna sa kabilin sa PHP, among gitigom ang mosunod nga mga punto para kanimo.

  1. Ang kabilin nagtugot sa klase sa bata nga maka-access sa publiko nga __construct, mga pamaagi ug mga kabtangan sa ginikanan nga klase.
  2. Sa pananglitan sa ibabaw, mahimo natong ma-access ang pamaagi sa klase sa mansanas gamit ang butang niini, ingon man ang mga pamaagi sa klase sa ginikanan.

Kasangkaran sa giprotektahan nga access modifiers sa Kabilin

Sa miaging tutorial, among nakat-unan nga ang giprotektahan nga mga hiyas/pamaagi sa usa ka klase ma-access sa sulod sa klase ug ang mga klase nga nakuha gikan niini.

Aron masabtan ang kasangkaran sa gipanalipdan nga access modifiers sa kabilin, atong tan-awon una ang mosunod nga pananglitan.

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "I am $this->name and my color is $this->color";
  }
}

class Apple extends Fruit {
  public function message() {
    echo "I am from Fruit class or Apple one?";
  }
}

$apple = new Apple("Apple", "red");
$apple->message();
$apple->intro();
?>

Sa pananglitan sa taas:

  • Naghimo kami usa ka klase nga prutas nga adunay pipila nga mga kinaiya sa publiko ug usa ka gipanalipdan nga pamaagi.
  • Naghimo kami og lain nga klase nga mansanas, naglugway gikan sa klase sa Prutas ug naghimo sa iyang pananglitan.
  • Kung gisulayan namon nga ma-access ang gipanalipdan nga pamaagi sa klase sa Fruite gamit ang butang nga klase sa mansanas, naghatag kini sayup tungod kay, gisulayan namon nga ma-access ang gipanalipdan nga miyembro sa klase sa Fruit sa gawas sa nakuha nga klase.

Mobalhin kita sa laing pananglitan, nga sa pagkatinuod usa ka gamay nga giusab sa pananglitan sa ibabaw.

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "I am {$this->name} and my color is {$this->color}.";
  }
}

class Apple extends Fruit {
  public function message() {
    echo "Am I a fruit or an apple? ";
    $this -> intro(); // protected
  }
}

$apple = new Apple("Apple", "red");
$strawberry->message();
?>

Sa pananglitan sa ibabaw, ang gipanalipdan nga pamaagi sa klase sa Prutas ma-access sa klase sa mansanas tungod kay gi-access namon kini sa sulod sa klase.

Pag-override sa Kabilin

Nasuko nagtumong sa pagbag-o sa mga pamaagi sa ginikanan nga klase sa mga bata nga klase, gamit ang parehas nga ngalan. Tan-awa ang mosunod nga pananglitan sa pagpalabi sa kabilin sa ubos.

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  public function intro() {
    echo "I am {$this->name} and my color is {$this->color}.";
  }
}

class Apple extends Fruit {
  public $weight;
  public function __construct($name, $color, $weight) {
    $this->name = $name;
    $this->color = $color;
    $this->weight = $weight;
  }
  public function intro() {
    echo "I am {$this->name}, my color is {$this->color}. Also, my weight is {$this->weight} kg.";
  }
}

$apple= new Apple("Apple", "red", 50);
$apple->intro();
?>

Sa pananglitan sa taas:

  • Naghimo kami usa ka klase sa ginikanan nga prutas ug usa ka klase sa bata nga mansanas nga nagpalapad sa klase sa prutas ug gibag-o ang __contruct ug intro nga mga pamaagi niini.
  • Timan-i nga ang bata nga klase nga mansanas naghubit sa __construct ug intro nga mga pamaagi nga adunay parehas nga ngalan. Bisan pa, ang mga parameter mahimong lahi.
  • Naghimo kami og apple class intance ug gipasa ang mga parameter sa construct function.
  • Kung tawgon nato ang intro method gamit ang apple instance, gitawag niini ang intro method sa apple class tungod kay gibuhat nato ang instance sa apple object gamit ang apple class constructor.

Papel sa Katapusan nga Keyword sa kabilin

ang katapusan nga Ang keyword nagpugong sa bata / nakuha nga klase sa pag-override sa pamaagi sa ginikanan / base nga klase. Tan-awa ang mosunod nga pananglitan aron masabtan ang paggamit sa Katapusan nga keyword.

<?php
class Fruit {
  final public function intro() {
    // code
  }
}

class Apple extends Fruit {
// error to override the intro
  public function intro() {
    // code
  }
}
?>

Sa pananglitan sa ibabaw, ang klase sa mansanas misulay sa pag-override sa pamaagi sa intro. Maghatag kini usa ka sayup tungod kay gigamit namon ang katapusan nga keyword nga adunay pamaagi sa intro sa klase sa Prutas.

Pag-klik alang sa usa ka opisyal reference sa PHP kabilin.

konklusyon

Ang kabilin dili lamang usa ka importante nga konsepto sa OOP sa PHP, apan sa bisan unsang pinulongan, kini adunay importante nga papel. Gikan sa panglantaw sa interbyu, ang mga pangutana sa kabilin importante kaayo. Busa, kinahanglan nimong buhaton ang kabilin sa imong kaugalingon.

Idugang ang komentaryo

Network sa Tutor

Pagkat-on sa PHP gikan sa A hangtod Z