Di PHP de Guherkerên Gihîştinê

Di PHP de avaker û wêranker
Mîrasiya di PHP OOP de

Di PHP-ê de, guhêrbarên gihîştinê beşek girîng a bernamesaziya objekt-oriented (OOP) ne. Ew çarçoweya guhêrbarên polê an rêbazan û çawa dikarin bigihîjin wan diyar dikin. Di vê postê de, em ê li cûrbecûr guhêrbarên gihîştinê yên di PHP-ê de binihêrin û nimûneyên karanîna wan çawa pêşkêş bikin.

Di PHP-ê de Cureyên Guherkerê Bigihînin

Di PHP de, guhêrbarên gihîştinê wekî gelemperî, taybet, an parastî têne dabeş kirin.

  • Gelemperî: Rêbazek an taybetmendiyek ku ji bo gelemperî hatî danîn li her deverê dikare were gihîştin. Ev di PHP-ê de guherbarê gihîştina xwerû ye.
  • Taybetî: Rêbazek an taybetmendiyek ku wekî taybet hatî danîn tenê di nav pola ku tê de hatî çêkirin de dikare were gihîştin.
  • Parastî: Rêbazek an taybetmendiyek ku wekî parastî hatî danîn dikare di nav pola ku tê de hatî çêkirin de, û hem jî di çînên ku ji wê polê mîras digirin de were gihandin.

wergerandî

class Person{
  public $name;
  protected $age;
  private $height;
}

$x= new Person();
$x->name = 'John'; // OK
$x->age= '32'; // ERROR
$x->height= '5.4'; // ERROR

Di mînaka jorîn de, em çînek "Kes" bi sê taybetmendiyan diyar dikin, her yek bi guhêrbarek gihîştina cihêreng. Taybetmendiya "nav" gelemperî ye, taybetmendiya "temen" parastî ye û taybetmendiya "bilindî" taybet e. Gava ku em hewl didin ku xwe bigihînin taybetmendiya "nav" li derveyî polê û nirxek lê zêde bikin, her tişt baş dixebite. Lêbelê, hewldana zêdekirina nirxan li taybetmendiyên "temen" û "bilindî" li derveyî polê dibe sedema xeletiyek kujer.

Rêbazên Giştî, Taybet û Parastî

class Person{
  public $name;
  public $age;
  public $height;

  function set_name($n) {  // a public function (default)
    $this->name = $n;
  }
  protected function set_age($a) { // a protected function
    $this->age = $a;
  }
  private function set_height($h) { // a private function
    $this->height = $h;
  }
}

$person = new Person();
$person->set_name('John'); // OK
$person->set_age('26'); // ERROR
$person->set_height('5.4'); // ERROR

Di mînaka jorîn de, em bi sê rêbazan, her yek bi guhêrbarek gihîştinê veqetandî, çînek "Kes" ava dikin. Rêbaza "navê destnîşankirî" gelemperî ye, rêbaza "temenê destnîşankirî" parastî ye, û rêbaza "bilindahiya destnîşankirî" taybet e. Dema ku em hewl didin ku fonksiyona "set name" ji derveyî polê vebikin, ew baş dixebite. Dema ku em hewl didin ku ji derveyî polê rêbazên "temenê destnîşankirî" û "bilindahiya destnîşankirî" bang bikin, em xeletiyek mirinê distînin.

Guherkerên gihîştina pêşkeftî: Abstract û Dawî

PHP ji bilî guhêrbarên gihîştina birêkûpêk, guhêrbarên gihîştina sofîstîke yên bi navên "abstract" û "dawî" peyda dike.

  • Guherkerek gihîştina razber tenê li ser çîn û rêbazan dikare were bikar anîn. Ew ji bo avakirina nexşeyek polê tête bikar anîn, lêbelê çîn nikare were destnîşan kirin. Rêbazên razber ew rêbaz in ku divê her çîna ku ji çîna razber mîras digire pêk bîne.
  • Çîn, rêbaz û taybetmendî dikarin hemî guhezkarek gihîştina dawîn werin dayîn. Ew ji bo qedexekirina çînek an rêbazek ku were dirêj kirin an jinavbirin tê bikar anîn.

wergerandî

abstract class Bike {

    private $maxSpeed = 80;

    // Simple method
    public function drivingSpeed() {
        return "Driving at " . $this->maxSpeed . " kilometer/hour";
    }

    // Abstract method
    abstract public function drive();
}

class Police extends Bike {

    public function drive() {
        return "Driving out of speed limit.";
    }

}

$bike= new Police();
echo $bike->drivingSpeed();

Di mînaka li jor de, em an veqetî pola bi navê "Bike" ku fonksiyonek razber a bi navê "drive()" heye. Dûv re em çînek nû bi navê "Polîs" ava dikin, ku dirêj dike çîna "Bike" û fonksiyona "drive()" pêk tîne. Em li şûna wê çîna "Polîs" bikar tînin ji ber ku em nikarin objeyek çîna razber ava bikin.

Di dawiyê de, guhêrbarên gihîştinê beşek girîng a OOP-ê ya PHP-ê ne û ji bo sînorkirina çarçoweya guhêrbar an fonksiyonên polê têne bikar anîn. Fêmkirin û bi bandor karanîna guhêrbarên gihîştinê dibe ku ji we re bibe alîkar ku hûn kodek ewledar û birêkûpêk pêşve bibin.

Q & A

Pirs: Guherkerên gihîştinê çi ne?
A: Guherkerên gihîştinê çarçoweya guhêrbar an rêbazan, û her weha cihê ku ew dikarin werin gihîştin diyar dikin. Di PHP de, guhêrbarên gihîştinê wekî gelemperî, taybet, an parastî têne dabeş kirin.

Pirs: Guherkera gihîştina xwerû çi ye?
A: Guherkera gihîştina xwerû ya PHP-ê gelemperî ye. Ger dema ku hûn di çînek PHP-ê de rêbazek an taybetmendiyek diafirînin guhêrkarê gihîştinê peyda nekin, ew ji hêla xwerû ve wekî gelemperî tête danîn.

Pirs: Cûdahiya di navbera guhêrbarên gihîştina taybet û parastî de çi ye?
A: Rêbazek an taybetmendiyek taybet dikare tenê di nav pola ku ew çêkiriye de bigihîje, lê rêbazek an taybetmendiyek parastî dikare di nav pola ku ew afirandiye de û hem jî çînên ku ji wê polê mîras wergirtine were gihîştin.

Pirs: Hûn dikarin mînakek bikar bînin ku di PHP-ê de guherbarek gihîştina razber bikar bînin?

abstract class Bike {
    private $maxSpeed = 80;
    abstract public function drive();
}
class Police extends Bike {
    public function drive() {
        return "Driving out of speed limit.";
    }
}

Di mînaka li jor de, em çînek razber bi navê "Bike" ava dikin ku fonksiyonek jêhatî ya bi navê "drive()" heye. Dûv re em çînek nû bi navê "Polîs" ava dikin, ku çîna "Bike" dirêj dike û fonksiyona "drive()" pêk tîne. Em li şûna wê çîna "Polîs" bikar tînin ji ber ku em nikarin objeyek çîna razber ava bikin.

Pirs: Guherkera gihîştina paşîn çawa dixebite?
A: Guherkera gihîştina dawîn dikare li ser çîn, rêbaz û taybetmendiyan were sepandin. Ew ji bo pêşîgirtina li dirêjkirina çînek an jî rêgezek ji jor ve tê bikar anîn. Ev tê wê wateyê ku her çîna ku ji çînek dawîn mîras digire, nikare were dirêj kirin, û her rêbazek ku wekî dawî hatî nîşankirin nikare were paşguh kirin.

Exercises:

  1. Guherkera gihîştina xwerû di PHP de çi ye?
  2. Cûdahiya di navbera guhêrbarên gihîştina taybet û parastî de di PHP de çi ye?
  3. Mînakek bikar anîna guherbarek gihîştina razber di PHP de bidin.
  4. Guherkera gihîştina dawîn çawa dixebite?
  5. Ma hûn dikarin objeyek çînek razber biafirînin? Çima yan çima na?
  6. Ma hûn dikarin di dersa zarokan de rêbazek dawîn bişopînin? Çima yan çima na?
  7. Ma hûn dikarin nirxek ji taybetmendiyek taybet re li derveyî pola ku ew tê de hatî afirandin destnîşan bikin? Çima yan çima na?
  8. Ma rêbazek parastî dikare li derveyî pola ku tê de hatî afirandin were gihîştin? Çima yan çima na?

Bersiv:

  1. Guherkera gihîştina xwerû ya di PHP de gelemperî ye.
  2. Rêbazek an taybetmendiyek taybet a di PHP-ê de tenê di hundurê pola ku tê de hatî çêkirin de dikare were gihîştin, lê rêbazek an taybetmendiyek parastî dikare di nav pola ku tê de hatî çêkirin de, û her weha di çînên ku ji wê polê de mîras digire de were gihandin.
abstract class Bike {
    private $maxSpeed = 80;
    abstract public function drive();
}
class Police extends Bike {
    public function drive() {
        return "Driving out of speed limit.";
    }
}

4. Guherkera gihîştina dawî dikare li ser çîn, rêbaz û taybetmendiyan were sepandin. Ew ji bo pêşîgirtina li dirêjkirina çînek an jî rêgezek ji jor ve tê bikar anîn.
5. Na, em nikarin objeyek ji çînek razber biafirînin ji ber ku çînek razber ji bo çînên din wekî nexşeyek kar dike û çêkerek tune ku tiştek biafirîne.
6. Na, em nikarin rêbazek dawîn di pola zarokan de bişopînin ji ber ku ew wekî dawîn tê nîşankirin û nayê paşguh kirin.
7. Na, em nikarin nirxek taybetmendiyek taybet a li derveyî pola ku ew hilberandiye peyda bikin ji ber ku taybetmendî tenê di nav polê de heye.
8. Na, rêbazek parastî nikare li derveyî pola ku ew afirandiye bigihîje, lê dibe ku ji hêla çînên ku ji wê polê ve têne peyda kirin.

Di PHP de avaker û wêranker
Mîrasiya di PHP OOP de
nêzîkî

Di derbarê PHP-ê de rojane bimînin!

Em spam nakin!

en English
X
Scroll to Top