Помогни ни да направим Uroci.net по - богат! Добави урок

PHP - част 7 (Работа с класове)

PHP » PHP
fix3d   трудност:    видян: 10103

Работа с класове

Запознаване с класовете

В терминологията на обектно ориентираното програмиране, класът се дефинира като множество от обекти, които имат общи характеристики и поведение. Заедно с това обектът се дефинира като представител на даден клас, който се идентифицира уникално и предоставя функционалност, която е обща за целия клас.

За да разберете и да свържете с реалния живот концепцията за класове и обекти, ще разгледаме един прост пример. Паунът, врабчето и враната са птици. Защо? Защото имат общи характеристики. Всяка от тях снася яйца и излюпва малките си, всяка от тях е покрита с пера и може да лети. Затова можете да кажете, че паунът, врабчето и враната са уникални обекти, които имат сходство в структората и поведението и принадлежат към класа, наречен птици.

В PHP, класът представлява набор от променливи и функции. Променливите в класовете съдържат данните, които са необходими за функционалността на класа. Функциите във класа пък обработват тези данни и реализират функционалността на класа.
Обектът е инстанция на класа.

В следващите секции ще видите как можете да създадете класове и обекти от тези класове в PHP.

Създаване на клас

В PHP можете да дефинирате ( или създадете ) клас, като използвате следния синтаксис:

class име_на клас // Деклариране на класа
{
// Деклариране на поле ( променлива на класа )
var $име_на_променлива;
// Деклариране на метода ( функция на класа )
function име_на_функция ( $аргумент 1, [...] [...], $аргумент n)
{
// Код на функцията
} // Тук свършва декларацията на метода
} // Тук свършва декларацията на класа

Можете да създадете следния прост клас, като използвате горния синтаксис:
<?php
class PrintName {
var $name;
function show_name() {
echo "Hi $name";
}}
?>

В горният пример се създава клас с име PrintName. Класът съдържа едно поле с име name. Класът също така съдържа метод show_name. При извикването на този метод ( за това ще видите по-късно ) на екрана се появяват две съобщения, съдържащи стойността на полето name.
Обърнете внимание на ключовата дума var преди полето name. Полетата на класовете винаги се декларират с ключовата дума var. Това е така, защото var декларира променливите като част от даден клас и така позволява на полетата да бъдат достъпни извън класа. Ако забравите да сложете ключовата дума var, ще получите съобщение за грешка.

След като видяхте, как можете да създадете клас в PHP, сега ще видите как можете да го използвате. Както в другите езици за обектно ориентирано програмиране, данните, намиращи се в клас ( полетата характеристики ), и методите не са достъпни извън класа! Ако си спомняте основните концепции на обектно ориентираното програмиране, тази особеност е позната на програмистите, като капсуловане. Капсуловането означава защитаване на неважните данни от външен клас за достъп.

Полетата и методите са скрити в класа и са недостъпни. Но как можете да ги използвате извън класа? За да направите това трябва да инсталирате класа. В следващата секция ще разгледате инстанциране на класовете.

Инстанциране на класове - Създаване на обекти
Класът е просто декларация. Поради тази причина, той не съществува, докато не зададете поне една негова инстанция. В терминологията на обектно ориентираното програмиране, тази инстанция на класа се нарича обект. След като създадете обект от даден клас, можете да осъществите достъп до полетата и методите, скрити в класа, към който принадлежи обектът. Да разгледаме следния пример, за да видите как можете да използвате променливата name и метода show_name() на класа PrintName

<?php

class PrintName {
var $name;

function show_name() {
echo ;
echo "Hi $name";
}}
$obj1 = new PrintName
//Инстанциране на класа с име "PrintName"
// с обект с име "obj1"

$obj1 -> name = "George";
// Задаване на стойността "George" на полето "name"
$obj1 -> show_name();
// Извикване на метода "show_name()"

?>

В горния пример се създава обект с име obj1 от класа PrintName. Този обект инстанцира класа PrintName. Това означава, че за класа има заделена памет и имате достъп до методите му, чрез обекта obj1. Обектът obj1 използва оператора -> за осъществяване на достъп до полето name и до метода show_name(). На полето name в обекта obj1 се задава стойността Gerge чрез реда $obj1 -> name = "George"; и след това се извиква методът show_name(), който показва съобщението "Hi George!". Видяхте как можете да осъществите достъп до членове на класа с помощта на обекти. Сега ще видите как можете да осъществите достъп до методите, без изобщо да използвате обект!

Извикване на методи от клас без инстанциране
Можете да извикате методи на клас, без да ви се налага преди това инстанцирате класа. За целта трябва да използвате нотацията ::. Разгледайте следния пример за да видите как става това.

<?php

class area {
function calculate_area( $lenght, $breadth){
return $lenght * $breadth;
}}

$result = area :: calculate_area(225, 56);
echo "The area Is : $result. ";


В горния пример с използването на нотацията :: се осъществява достъп до метода calculate_area() на класа area. Резултатът се изчислява на базата на стойностите, предоставени по време на извикването на метода, а резултатът се съхранява в променливата result. Резултатът от горния пример е The area Is 12600.


Страници: 1 2 »

Коментари (2)

stoimenn на 16.05 2009 в 18:24ч.
примерите в урока са изключително неточни, а да не говорим за правописните грешки

примера:



не работи

и това не е само в този урок ами всичките части с уроци са пълни с грешки.
Добрече съм работил с обектно ориентирани езици та поне знам как да оправам грешките ама някой който си няма идея и сега навлиза в нещата просто няма никакъв шанс да разбере от тези примери за какво става дума
valentina6 на 20.12 2009 в 16:20ч.
Този урок е страхотен. Трябваше ми бързо да се ориентирам при създаването на конструктора. На мене много ми помогна.

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com