A sinf, ob'ektga asoslangan dasturlashda (OOP) asosiy tushunchadir.Oddiy qilib aytganda, sinf o'zgarmaydigan turdagi.
Sinfi bir misol.Ob'ekt - ularni ishlash uchun ma'lumotlar (xususiyatlar) va funktsiyalar (usullar) to'plami.Ma'lumotlar va usullar sinf a'zolaridir.Umuman olganda, ob'ekt inkapsulatsiyani qo'llab-quvvatlovchi barcha narsadir.
Ob'ektning ichida ma'lumotlar va kod (sinf a'zolari) ochilishi mumkin yoki yo'q.Jamoatchilik ma'lumotlari va sinf a'zolari dasturning boshqa qismlariga ob'ektning tarkibiy qismi bo'lmaydilar.Ammo shaxsiy ma'lumotlar va sinf a'zolari faqat ushbu ob'ektning ichida mavjuddir.
PHP da sinflarning tavsifi xizmat so'zlarisinfidanboshlanadi:
class Имя_класса {
// описание членов класса - данных и методов для их обработки
}
Ob'ektni e'lon qilish uchun sizyangioperatordan foydalanishingiz kerak:
Объект = new Имя_класса;
Ma'lumotlar mavjud xizmat so'zidan foydalaniladi.Usul odatdagi funksiya bilan bir xil tarzda tasvirlanadi.Parametrlarni bir usulda ham yuborishingiz mumkin.
PHP klassidagi misol:
#000000">
/>
<?php
#0000BB"><?php
/>
// Создаем новый класс Coor:
#FF8000">// Создаем новый класс Coor:
/>
classCoor#0000BB">classCoor style="color: #007700">{
/>
// данные (свойства):
#FF8000">// данные (свойства):
/>
var#007700">var style="color: #0000BB">$name style="color: #007700">;
/>
var$addr#0000BB">$addr style="color: #007700">;
/>
// методы:
#FF8000">// методы:
/>
functionName#0000BB">functionName style="color: #007700">(){
/>
echo"<h3>John</h3>"#DD0000">"<h3>John</h3>" style="color: #007700">;
/>
}
}
// Создаем объект класса Coor:
#FF8000">// Создаем объект класса Coor:
/>
$object#0000BB">$object style="color: #007700">=new style="color: #0000BB">Coor style="color: #007700">;
/>
?>
#0000BB">?> />
PHP-da sinflar va ob'ektlarga kirish
Sinflar qanday ta'riflanganligi va ob'ektlar qanday yaratilganligini o'rganib chiqdik.Endi biz sinf a'zolariga kirishimiz kerak, chunki bu uchun operator->PHPuchunmo'ljallangan.Misol keltiraylik:
#000000">
/>
<?php
#0000BB"><?php
/>
// Создаем новый класс Coor:
#FF8000">// Создаем новый класс Coor:
/>
classCoor#0000BB">classCoor style="color: #007700">{
/>
// данные (свойства):
#FF8000">// данные (свойства):
/>
var#007700">var style="color: #0000BB">$name style="color: #007700">;
/>
// методы:
#FF8000">// методы:
/>
functionGetname#0000BB">functionGetname style="color: #007700">(){
/>
echo"<h3>John</h3>"#DD0000">"<h3>John</h3>" style="color: #007700">;
/>
}
}
// Создаем объект класса Coor:
#FF8000">// Создаем объект класса Coor:
/>
$object#0000BB">$object style="color: #007700">=new style="color: #0000BB">Coor style="color: #007700">;
/>
// Получаем доступ к членам класса:
#FF8000">// Получаем доступ к членам класса:
/>
$object#0000BB">$object style="color: #007700">-> style="color: #0000BB">name style="color: #007700">= style="color: #DD0000">"Alex" style="color: #007700">;
/>
echo$object#0000BB">$object style="color: #007700">-> style="color: #0000BB">name style="color: #007700">;
/>
// Выводит 'Alex'
#FF8000">// Выводит 'Alex'
/>
// А теперь получим доступ к методу класса (фактически, к функции внутри класса):
$object#0000BB">$object style="color: #007700">-> style="color: #0000BB">Getname style="color: #007700">();
/>
// Выводит 'John' заглавными буквами
#FF8000">// Выводит 'John' заглавными буквами
/>
?>
#0000BB">?> />
Sinf ichidagi a'zolarga sinfda kirish uchun$ mana buko'rsatgichni ishlatishingiz kerak.O'zgartirilgan usulGetname ():
function Getname() {
echo $this->name;
}Xuddi shu tarzdaSetname ()usulini ham yozishingiz mumkin:
function Setname($name) {
$this->name = $name;
}
Endi nomni o'zgartirish uchunSetname ()usulidan foydalanishingiz mumkin:
$object->Setname("Peter");
$object->Getname();
Bu erda to'liq kod ro'yxati:
$ Buko'rsatgich, faqat ma'lumotlarga kirish uchun emas, balki usullarga kirish uchun ham ishlatilishi mumkin:
function Setname($name) {
$this->name = $name;
$this->Getname();
}
Ob'ektlarni ishga tushirish
Ba'zan ob'ektni boshlash uchun zarur bo'ladi - uning xususiyatlarini dastlabki qiymatlarga belgilash.Sinf sinfining nomi nomini yozing va u ikkita xususiyatni o'z ichiga oladi: shaxs va uning yashash joyi shahri.Ob'ektni ishga tushirishni amalga oshiradigan usulni (funktsiyani) yozishingiz mumkin, masalan,Init ():
Eng muhimi, ob'ektni yaratgandan keyin darhol qo'ng'iroq qilishni unutish yoki ob'ektni yaratish (yangioperator) bilan uni boshlash (Initnichaqirib) o'rtasida ba'zi usulni chaqirishni unutmang.
Agar ob'ekt yaratilganda ma'lum bir usulni avtomatik ravishda chaqirish kerakligini bilish uchun PHPga sinf (Coor) bilan bir xil ism berilishi kerak:
function Coor ($name)
$this->name = $name;
$this->city = "London";
}
Ob'ektni ishga tushirish usuli konstruktor deb ataladi.Biroq, PHP-dagi destruktor yo'q, chunki skriptlar yopilganda manbalar avtomatik ravishda ozod etiladi.