Di PHP-ê de çînek Abstract çi ye?

Berdewam di PHP OOP
pêwendiya php li hember çîna abstrakt

Di vê gotara berfireh de, em ê kûr biçin qada dersên abstract PHP. Ev gotar dê ji we re serpêhatiyek bêkêmasî pêşkêşî we bike ka meriv çawa di projeyên pêşkeftina PHP-ya xwe de dersên abstrakt bikar tîne, ji têgihîştina prensîban bigire heya lêkolîna hevoksaziyê û bicîhkirinê. Ev gotar dê ji we re zanyarî û jêhatî peyda bike ku hûn di koda xwe de bi dersên razber re bi serfirazî bixebitin, gelo hûn nûbilind an pêşdebirek bi ezmûn in.

Çînek razber danezana rêbazan dihewîne lê ne pênaseya wan. Tenê navên wan hene. Berpirsiyariya pola zarok e ku van rêbazan diyar bike.

Rêbazek razber çi ye?

Rêbazek razber rêbazek çînek razber e ku bi karanîna peyvên razber tê ragihandin û laş nagire. Ew ji hêla pola zarokê ve tê destnîşankirin.

  • veqetî peyva sereke ji bo ragihandina çînek an rêbazek razber tê bikar anîn.
  • Divê çînek razber herî kêm yek rêbazek razber hebe. Lêbelê, ew dikare di heman demê de rêbazên ne-abstract jî dihewîne.

Syntax

<?php
abstract class ParentClass {
  abstract public function someMethod1();
  abstract public function someMethod2($name, $color);
  abstract public function someMethod3() : string;
}
?>

Di PHP de qaîdeyên dersa abstrakt çi ne?

  • Divê çînek razber herî kêm yek rêbazek razber hebe. Lêbelê, ew dikare rêbazên ne-abstract jî dihewîne.
  • Dema ku zarokek jê re dibêjin mîrata çîna dêûbavê abstrakt, divê ew bi heman navî rêgezên razber ên çîna dêûbav diyar bike.
  • Dema ku di pola zarokê de rêbazên asbtract têne destnîşankirin, divê ew bi guhêrbarek gihîştina kêmtir sînorkirî were destnîşankirin. Mînakî, heke çîna dêûbav rêbaza razber heye ku heye parastin guherbarê gihîştinê. Ji ber vê yekê, dema ku pola zarok vê rêbazê diyar dike, divê ew guhezkarê gihîştina xwe wekî her yekê bihêle parastin or alenî. Ew nikare wê saz bike taybet, ji ber ku ew ji yên parastî sînordartir e.
  • Çîna zarokê ya ku rêbaza razber diyar dike divê hejmara wekhev a argumanan ku di danezanê de di çîna dêûbavê asbtract de hatî destnîşan kirin derbas bike. Lêbelê, pola zarok dikare ji bilî yên ku hewce ne xwediyê argumanên vebijarkî/zêde bin.

Mînaka çîna Abstract di PHP de

Ravekirina mînaka jorîn

<!-- wp:code -->
<pre class="wp-block-code"><code><?php
// Parent abstract class
abstract class Bike {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  abstract public function introduction() : string;
}

// Child classes defining the parent classes
class Honda extends Bike {
  public function intro() : string {
    return "I am $this->name!";
  }
}

class Suzuki extends Bike {
  public function introduction() : string {
    return "I am $this->name!";
  }
}

// Objects from child classes
$honda = new honda("Honda");
echo $honda->introduction();

$suzuki= new suzuki("Suzuki");
echo $suzuki->introduction();

?></code></pre>
<!-- /wp:code -->
  • Di mînaka jorîn de, em çînek razber diafirînin bike ku rêbazek razber dihewîne danasînê de.
  • Em du polên zarokan ava dikin Honda û Suzuki ku çîna razber dirêj dike û rêbaza danasînê diyar dike.
  • Em tiştên van çînan diafirînin û bi karanîna nesneyên wan gazî rêbaza danasînê dikin. Rêbaza danasînê li gorî pêkanîna ku ji hêla pola wê ya têkildar ve hatî dayîn dixebite.

Mînaka çîna razber a bi argumanên zêde di serwerkirina rêbazê de

<?php
// Parent abstract class
abstract class Bike {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  abstract protected function introduction($model) : string;
}

// Child classes defining the parent classes
class Honda extends Bike {
  public function intro($model) : string {
    return "I am $this->name. My model is $model";
  }
}

class Suzuki extends Bike {
  public function introduction($model, $color=null) : string {
    return "I am $this->name. My model is $model and color is $color";
  }
}

// Objects from child classes
$honda = new honda("Honda");
echo $honda->introduction();

$suzuki= new suzuki("Suzuki");
echo $suzuki->introduction();
?>

Ravekirina mînaka jorîn

  • Mantiqa bingehîn a mînaka jorîn mîna mînaka berê ye. Lêbelê, em di rêbaza danasînê de argûmana zêde ji fonksiyonê re derbas dikin suzuki sinif.
  • Wekî ku me berê di vê dersê de qaîdeyek diyar kiriye, guhêrkera gihîştina pola zarok dema ku rêbaza razber a çîna dêûbav bicîh tîne divê ji ya ku di pola dêûbav de ji bo ragihandina vê rêbazê hatî destnîşan kirin kêmtir be. Ji ber vê yekê, her du polên zarok ji bo danasîna rêbaza danasînê guhêrbarek gihîştina gelemperî bikar tînin.
  • Biceribînin ku fonksiyonê bi guhezkarê gihîştina taybet re diyar bikin, ew ê xeletiyek çêbike.

Nîşe: Dersa razber tu rêbazek çêker nagire. Ji ber vê yekê, em nikarin mînakek çînek razber biafirînin.

Belgekirina fermî ya PHP 8 abstraction.

Berdewam di PHP OOP
pêwendiya php li hember çîna abstrakt
nêzîkî

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

Em spam nakin!

en English
X
Scroll to Top