Ներածություն PHP-ում OOP-ին

Այժմ մենք կզբաղվենք OOP-ի ուսումնասիրությամբ PHP-ում: Եկեք դիտարկենք կյանքից վերցված օրինակ, ապա տեղափոխենք այն PHP:

Որպես օրինակ վերցնենք ավտոմեքենա: Նրան ունի անիվներ, գույն, թափքի տեսակ, շարժիչի ծավալ և այլն: Բացի այդ, վարորդը կարող է հրամաններ տալ նրան՝ ընթանալ, կանգնել, թեքվել աջ, ձախ և այլն:

Կարելի է ասել, որ գոյություն ունի որոշակի դաս ավտոմեքենաների, որն ունի ընդհանուր հատկություններ (բոլորն ունեն անիվներ և բոլորին կարելի է հրամաններ տալ):

Կոնկրետ ավտոմեքենան, որ կանգնած է փողոցում - այս դասի ներկայացուցիչն է, կամ, այլ բառերով, օբյեկտ այս դասի: Բոլոր օբյեկտները այս դասից ունեն հատկություններ: անիվների քանակ, գույն, թափքի տեսակ և մեթոդներ. ընթանալ, կանգնել, թեքվել աջ, ձախ:

Այլ բառերով, ինքը՝ դասը, նախագիծ է, ըստ որի գործարանում պատրաստվում են ավտոմեքենաներ: Օբյեկտը դա հենց մեքենան է, պատրաստված այս նախագծերով:

PHP-ում դասը ստեղծվում է օգտագործելով բանալի բառը class, որին հաջորդում է այս դասի անվանումը: Եկեք ստեղծենք Car դասը.

php<?php
  class Car
  {
    // այստեղ կոդ, այսինքն PHP-ով ավտոմեքենայի նախագիծ
  }
?>

Նշենք այժմ մեր նախագծում, որ ցանկացած ավտոմեքենա, ստեղծված այս նախագծով, կունենա գույնի և վառելիքի քանակի հատկություն:

Դրա համար դասի ներսում գրենք $color հատկությունը և $fuel հատկությունը.

php<?php
  class Car
  {
    // Սահմանենք հատկություններ (ըստ էության դասի փոփոխականներ).
    public $color; // ավտոմեքենայի գույնը
    public $fuel; // վառելիքի քանակը
  }
?>

Եկեք այժմ ստեղծենք մեր դասի մեթոդները: PHP-ում մեթոդները, նման սովորական ֆունկցիաների, հայտարարվում են օգտագործելով function բանալի բառը, որից առաջ գրվում է public բանալի բառը:

Ինչպես արդեն նշվեց վերևում, մեր ավտոմեքենան կարող է ընթանալ, կարող է թեքվել, կարող է կանգնել: Եկեք ստեղծենք համապատասխան մեթոդներ մեր դասում.

php<?php
  class Car
  {
    public $color; // ավտոմեքենայի գույնը
    public $fuel;  // վառելիքի քանակը
    
    // Ընթանալու հրաման.
    public function go()
    {
      // ինչ-որ PHP կոդ
    }
    
    // Թեքվելու հրաման.
    public function turn()
    {
      // ինչ-որ PHP կոդ
    }
    
    // Կանգնելու հրաման.
    public function stop()
    {
      // ինչ-որ PHP կոդ
    }
  }
?>

Մենք ստեղծեցինք մեր ավտոմեքենայի նախագիծը: Այժմ անհրաժեշտ է գնալ գործարան և ստեղծել այս դասի օբյեկտը (այսինքն կոնկրետ ավտոմեքենա):

PHP-ում դա արվում է օգտագործելով new բանալի բառը, որից հետո գրվում է դասի անունը.

php<?php
  new Car;
?>

Սակայն, եթե պարզապես ստեղծենք դասի օբյեկտը - դա ոչ մի տեղ չի հանգեցնի (դա նույնն է, որ, օրինակ, հայտարարել զանգված և այն ոչ մի տեղ չգրել): Մեզ անհրաժեշտ է փոփոխական այս օբյեկտը պահելու համար:

Թող այս փոփոխականը կոչվի $myCar - գրենք դրա մեջ մեր ստեղծած օբյեկտը.

php<?php
  $myCar = new Car;
?>

Ավտոմեքենայի ստեղծումից հետո կարելի է դիմել նրա հատկություններին: Դիմումը նրանց կատարվում է սլաքի միջոցով ->: Եկեք սահմանենք մեր օբյեկտի հատկությունները.

php<?php
  $myCar = new Car; // հրաման տալ գործարանին պատրաստել ավտոմեքենա
  
  // Սահմանում ենք օբյեկտի հատկությունները.
  $myCar->color = 'red'; // ներկել կարմիր գույնով
  $myCar->fuel = 50; // լցնել վառելիք
?>

Վերջ, մեր ավտոմեքենան ստեղծված է, ներկված և վառելիքով լցված: Այժմ մենք կարող ենք հրամաններ տալ նրան այս ավտոմեքենայի մեթոդների միջոցով:

Դիմումը մեթոդներին նույնպես կատարվում է սլաքի միջոցով, բայց, ի տարբերություն հատկության, մեթոդի անունից հետո գրվում են կլոր փակագծեր: Եկեք հրամաններ տանք մեր օբյեկտին.

php<?php
  $myCar->go();
  $myCar->turn();
  $myCar->stop();
?>