Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 ООП - Обектноориентирано Програмиране с PHP - Част I
  1. Въведение
  2. Класове
Magenta
     
Автор  Magenta (25.10.2004 14:26)  съобщение до автора
Погледнат  4691 пъти  добави към любими
Оценка  добави коментар
Гласове  14  изпрати на приятел
Коментари  (0)  абонирай се за PHP
    Страница 2 / 2

 



Класове

При ооп се работи с така наречените класове.Един клас е структура, която съдържа качества и методи.Качествата са неща ,коите описват даден обект са дефинирани в дадения клас като променливи . Методите се реализират като функции . Да започнем с класа category

CODE
1
2
3
4
5
class Category
{

var $categoryname;
var $categoryid;

Като начало дефинираме качествата на дадения клас. Тези качества трябва да декларираме с var. Сега и първата функция :

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function category($categoryid =0)
{
if ($categoryid == 0)
{
return
}

$query="select categoryname from categories where categoryid = $categoryid";
$result = mysql_query($query) or die(mysql_error());

list($categoryname) =
mysql_fetch_array($result);

$this->categoryname=$categoryname;
$this->categoryid=$categoryid;
}
}

Малко разяснения по горния код. Първо името на метода е един и същ с името на класа. Това ни подсказва, че това е конструктор. Един конструктор се изпълнява автоматично, когато се изпълнява нова инстанция на класа. Освен това тука срещаме и  думичката $this->. Тя показва, че става въпрос за качество или метод в рамките на дадения клас. С това придаваме стойности на categoryid и categoryname. Ако искаме да извикаме метод в рамките на някаква функция, просто слагаме скоби по следния начин :

CODE
1
$this->method()

Сега да въведеми и един друг метод за триене на категории. Затова обаче преди това трябва да имаме готови табели, например да кажем  categories и products. Тези две табели имат зависимост 1 към n една спрямо друга. Затова преди да тиеме категория трябва да проверяваме, дали тя съдържа някакъв обект. Ето и пример :

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Всичко , което написахме досега трябва да
    
// въведете тук.Продължаваме със следното

     
function delete($categoryid=0)
      {
       
if($categoryid == 0 && empty($this->categoryid)
        {

         
$this->error = "Nothing to delete";
         
return FALSE;
        
}
        
if ($categoryid !=0)
         {
         
$whereclause = "where categoryid = $categoryid";
        
}
        
else
        
{
         
$whereclause =
         
"where categoryid = $this->categoryid";
        
}
        
$query =" select * fro products $whereclause";
        
$result = mysql_query($query) or
          die
(mysql_error());
        
if (mysql_num_rows($result)>0)
         {
         
$this->error = "There are some more product";
         
return FALSE;
        
}
        
$query="delete from categories $whereclause";
        
$result = mysql_query($query) or
           die
(mysql_error());
        
if(mysql_affected_rows() == 0)
         {
         
$this->error = "there are no rows deleted";
         
return FALSE;
        
}
        
return TRUE;
    }

Да видим сега какво направихме досега.Имаме клас с един конструктор, метода delete() и няколко качества. Сега да видим как се инициализира един обект. Да кажем, че имаме PHP страница с нашите продукти и искаме да изтрием някои категории.. Но как да направим това. Само с кода, който имаме по-горе не можем да свършим цялата работа, защото все още нямаме интерфейс, с който да приложим триенето. Първо да кажем, че ще наименуваме файла с класа kato my.php. Сега трябва да направиме връзката с нашия нов файл . Това става с :

CODE
1
require "my.php";

После е необходимо да създадеме нова инстанция на класа , нов обект.Това става така:

CODE
1
$c = new Category;

С обекта $c имаме достъп до всички качества и методи на класа, като използваме следния синтаксис :
$c->attribute или $c->method.

Сега да направиме страницата, с която да триеме от базата за данни.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
     
require my.php;
     
     
$c = new Category($categoryid);
     
     
if(!$c->delete())
      {
       
echo "Delete error: $c->error";
     
}
     
else
     
{
       
echo "The category is deleted:";
       
echo "<ul>
                 <li>
$c->categoryname
                 <li>
$c->categoryid
              </ul>
            
";
     
}
      ?>

За да навлезете по-обстойно в програмиране с обектите трябва сами да направите няколко примера, за да разберета сами точно как протича всичко.Мисля че няма да си изгубите времето.



 << Предишна страница  


Ключови думи: PHP обектноориентирано програмиране


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008