Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠšΡƒΡ€Ρ "Π―Π·Ρ‹ΠΊ программирования PHP"Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 19

Автор Нина БавСльСва

<?php

class Person { // опрСдСляСм класс Личности

var $first_name; // имя личности

var $last_name; // фамилия личности

function make_person($t,$a){

// ΠΌΠ΅Ρ‚ΠΎΠ΄ устанавливаСт

// значСния ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

$this->first_name = $t;

$this->last_name = $a;

}

function show_person(){

// ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ личности

echo ("<h2>" . $this->first_name . " " .

$this->last_name . "</h2>");

}

}

class Programmer extends Person{

// опрСдСляСм класс

// Programmer, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ Person

var $langs = array ("Lisp");

// константным массивом

// Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² var ΠΌΠΎΠΆΠ½ΠΎ

function set_lang($new_lang){

// ΠΌΠ΅Ρ‚ΠΎΠ΄ добавляСт Π΅Ρ‰Π΅

// ΠΎΠ΄ΠΈΠ½ язык ΠΊ списку извСстных

$this->langs[] = $new_lang;

}

}

?>


Класс Programmer ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ класс Person, плюс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $langs, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТится список ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… программистом языков, ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ set_lang для добавлСния Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка ΠΊ списку ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ прСдставитСля класса программистов ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции new. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ список языков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°Π΅Ρ‚ программист, ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ для класса Person, Ρ‚.Π΅. ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ имя ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ программиста ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ свСдСния ΠΎ Π½Π΅ΠΌ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅:


<?php

$progr = new Programmer;

$progr -> set_lang("PHP");

// ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ для

// класса Programmer

print_r ($progr->langs);

// ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ для класса Person

$progr->make_person("Bill","Gates");

$progr->show_person();

?>


ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоят созданныС Π½Π°ΠΌΠΈ классы Person ΠΈ Programmer, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒβ€“ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ. Класс Person – Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, Π° Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ класс Programmer, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Π½Π΅ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ. Π›ΡŽΠ±ΠΎΠΉ класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΈ соотвСтствСнно ΠΏΠΎΡ€ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ².


ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ опрСдСлСния классов ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НСльзя сначала ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ класс Programmer, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ класс Person, Π° ΡƒΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ сам класс Person. Класс Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ (Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΡΡ).


ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹


Π’Π΅ΠΏΠ΅Ρ€ΡŒ, послС знакомства с ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ наслСдования Π² PHP, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ конструкторами PHP4 ΠΈ PHP3 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ конструкторах Π²ΠΎΠΎΠ±Ρ‰Π΅. Напомним, Ρ‡Ρ‚ΠΎ Π² PHP3 конструктор – это функция, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ совпадаСт с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса. А Π² PHP4 – функция, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ совпадаСт с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°.


<?php

class Programmer extends Person{

// опрСдСляСм класс

// Programmer, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ Person

var $langs = array ("Lisp");

function Programmer(){

// этот конструктор Π±ΡƒΠ΄Π΅Ρ‚

// Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π² PHP3, ΠΈ Π² PHP4

$this->make_person("Иван","ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²");

}

}

?>


Π—Π΄Π΅ΡΡŒ функция Programmer() являСтся конструктором, Ρ‚.Π΅. выполняСтся сразу послС создания любого прСдставитСля класса Programmer, задавая Π΅ΠΌΡƒ имя «Иван» ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ Β«ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²Β». ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹, ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Π’ этом случаС, создавая прСдставитСля класса, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ значСния этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². АргумСнты конструктора ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если всС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляр класса Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².


<?php

class Programmer extends Person{

// опрСдСляСм класс

// Programmer, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ Person

var $langs = array ("Lisp");

function Programmer($n = "Иван",

$f = "ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²"){

// это конструктор

$this->make_person($n,$f);

}

}

$default_progr = new Programmer();

// создаст программиста Ивана ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²Π°

$new_progr = new Programmer("Вася",

"Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²");

// создаст программиста Π’Π°ΡΡŽ Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²Π°

print_r($new_progr);

/* Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

$new_progr, Ρ‚.Π΅. свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

ΠΈ ΠΈΡ… значСния */

?>


ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π² PHP3, ΠΈ Π² PHP4, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Ссли Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Person. Допустим, ситуация Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ другая: конструктор имССтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Person:


<?php

class Person { // опрСдСляСм класс Личности

var $first_name;

var $last_name;

function Person($t,$a){ // конструктор

$this->first_name = $t;

$this->last_name = $a;

}

/* ... */

}

class Programmer extends Person{

// опрСдСляСм класс

// Programmer, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ Person

var $langs = array ("Lisp");

function set_lang($new_lang){

$this->langs[] = $new_lang;

}

}

$new_progr = new Programmer("Вася",

"Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²");

?>


Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π² этом случаС ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Programmer, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ автоматичСски Π²Ρ‹Π·Π²Π°Π½Π° какая-Π»ΠΈΠ±ΠΎ функция? Π’ PHP3 Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этом классС Π½Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Programmer() (здСсь конструктор – это функция, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ совпадаСт с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса). Π’ PHP4 Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ конструктор Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, Ссли ΠΎΠ½ сущСствуСт, Ρ‚.Π΅. вызовСтся функция Person() ΠΈΠ· класса Person (здСсь конструктор – функция, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ совпадаСт с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°).


Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ситуация – Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС Π΅ΡΡ‚ΡŒ функция, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ совпадаСт с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅Π³ΠΎ класса, Π° Π² Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅ΠΌ классС Π½Π΅Ρ‚ конструктора.


<?php

class Person { // опрСдСляСм класс Личности

var $first_name;

var $last_name;

function Person($t,$a){ // конструктор

$this->first_name = $t;

$this->last_name = $a;

}

function Programmer($new_lang){

echo "Π― – программист";

}

}

class Programmer extends Person{

// опрСдСляСм класс

// Programmer, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ Person

var $langs = array ("Lisp");

function set_lang($new_lang){

$this->langs[] = $new_lang;

}

}

$new_progr = new Programmer("Вася",

"Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²");

?>


Π’ этом случаС PHP3 Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π² качСствС конструктора Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Programmer() ΠΈΠ· описания класса Person. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ конструктор – это функция, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΎ ΠΆΠ΅ имя, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ класса. И Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π»ΠΈ эта функция Π² самом классС ΠΈΠ»ΠΈ ΠΎΠ½Π° наслСдуСтся ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. Π’ PHP4 класс Programmer Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ своСго конструктора, поэтому вызовСтся конструктор Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.


Ни Π² PHP 3, Π½ΠΈ Π² PHP 4 конструктор Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π½Π΅ вызываСтся автоматичСски ΠΈΠ· конструктора ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ класса.


ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ::


Иногда Π²Π½ΡƒΡ‚Ρ€ΠΈ описания класса Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. Π‘Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² классС, Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅Ρ‰Π΅ Π½Π΅ создан. Как Π±Ρ‹Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС? Π’ PHP4 для этого сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«::Β»


НапримСр, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π² описании класса Programmer Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ show_name() ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Person ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ say_hello(), Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π² описании класса Programmer, ΠΊΠΎΠ³Π΄Π° Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ этого класса Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π» создан:


<?php

class Person { // опрСдСляСм класс Личности

var $first_name;

var $last_name;

function Person($t,$a){ // конструктор

$this->first_name = $t;

$this->last_name = $a;

}

function show_name(){

// ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ личности

echo ("МСня Π·ΠΎΠ²ΡƒΡ‚, " .

$this->first_name . " " .

$this->last_name . "!<br>");

}

}

class Programmer extends Person{

// опрСдСляСм класс

// Programmer, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ Person

function set_lang($new_lang){

// ΠΌΠ΅Ρ‚ΠΎΠ΄ добавляСт Π΅Ρ‰Π΅

// ΠΎΠ΄ΠΈΠ½ язык ΠΊ списку извСстных

$this->langs[] = $new_lang;

Person::show_name();

// Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса

echo "И я знаю Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅Ρ‰Π΅ ΠΈ " .

$new_lang;

}

function show_name(){

echo ("Π― программист, " .

$this->first_name . " " .

$this->last_name . "!<br>");

}

function say_hello(){

echo "ΠŸΡ€ΠΈΠ²Π΅Ρ‚!<br>";

}

}

Programmer::say_hello();

// Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π½ΠΈ

// ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΅Π΅ класса Π΅Ρ‰Π΅ Π½Π΅ создан

$new_progr = new Programmer("Вася","Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²");

$new_progr->set_lang("PHP");

?>


Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:


ΠŸΡ€ΠΈΠ²Π΅Ρ‚!

МСня Π·ΠΎΠ²ΡƒΡ‚ Вася Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²!

И я знаю Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅Ρ‰Π΅ ΠΈ PHP


Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Programmer::say_hello(); ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ say_hello класса Programmer ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΡƒΡŽ, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄, примСняСмый ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса Π½Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π΄ΠΎ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈ конструкциСй this, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.