Bloglar | Foydali ma'lumotlar | PHP klasslari va ob'ektlari(OOP tarkibi)
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:

#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
$this#0000BB">$this style="color: #007700">-> style="color: #0000BB">name style="color: #007700">;
/>
}

functionSetname#0000BB">functionSetname style="color: #007700">( style="color: #0000BB">$name style="color: #007700">){
/>
$this#0000BB">$this style="color: #007700">-> style="color: #0000BB">name style="color: #007700">= style="color: #0000BB">$name style="color: #007700">;
/>
}

}

// Создаем объект класса Coor:
#FF8000">// Создаем объект класса Coor:
/>
$object#0000BB">$object style="color: #007700">=new  style="color: #0000BB">Coor style="color: #007700">;
/>
// Теперь для изменения имени используем метод Setname():
#FF8000">// Теперь для изменения имени используем метод Setname():
/>
$object#0000BB">$object style="color: #007700">-> style="color: #0000BB">Setname style="color: #007700">( style="color: #DD0000">"Nick" style="color: #007700">);
/>
// А для доступа, как и прежде, Getname():
#FF8000">// А для доступа, как и прежде, Getname():
/>
$object#0000BB">$object style="color: #007700">-> style="color: #0000BB">Getname style="color: #007700">();
/>
// Сценарий выводит 'Nick'
#FF8000">// Сценарий выводит 'Nick'
/>
?>
#0000BB">?>

/>


$ 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 ():

#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
$city#0000BB">$city style="color: #007700">;
/>
// Инициализирующий метод:
#FF8000">// Инициализирующий метод:
/>
functionInit#0000BB">functionInit style="color: #007700">( style="color: #0000BB">$name style="color: #007700">){
/>
$this#0000BB">$this style="color: #007700">-> style="color: #0000BB">name style="color: #007700">= style="color: #0000BB">$name style="color: #007700">;
/>
$this#0000BB">$this style="color: #007700">-> style="color: #0000BB">city style="color: #007700">= style="color: #DD0000">"London" 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">Init style="color: #007700">();
/>
?>
#0000BB">?>

/>


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.
Ma'lumotlar
Yaratilgan vaqt: 14 Aug 2018, 17:29
Muallif: @Ashurov (54)
Raxmat aytishgan: 0 kishi
Fikrlar: 0 ta
Ko'rilgan: 6 marta
Shikoyatim bor
Blog bilan bo'lishish
uzmasters.ru Onlayn 254 (0/254)
uzmasters.ru Forumga a'zo bo'lish
uzmasters.ru Forumdan qidirish
uzmasters.ru Bosh sahifa
Яндекс.Метрика UzMasterS.Ru