Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Начала ООП
 
 автор: Sonic   (04.08.2004 в 21:06)   письмо автору
 
 

Я хочу попробовать узнать что такое ОПП, почитал всяки статьи, но на карандашах мало что понятно без практики. НАшёл маленький и очень простой приер, как говориться Hello World

<?php

class helloWorld {
  function 
myPrint() {
    print 
"Hello, world.";
  }
}
$myHelloWorld = new helloWorld();
$myHelloWorld->myPrint();
?> 


А можно что-нибудь по сложнее, не сильно сложнее, но чуток. Просто сложно найти хороший учебный пример, а из статей мало чего понимаю :(

   
 
 автор: cheops   (04.08.2004 в 22:02)   письмо автору
 
   для: Sonic   (04.08.2004 в 21:06)
 

Небольшая приамбула :)))
В PHP 5 очень здорово изменилась объектная модель. Появился деструктор, клонирование, интерфейсы... В общем, появилась более или менее целостная объектно-ориентированная модель. До этого в PHP в этом плане только слёзы были.
Документации в общем нет ни на русском, ни на ангийском (в халявном виде я имеею ввиду) - неплохо, как мне кажется, описано ООП в нашем учебнике, но его нужно покупать.

Постараюсь здесь привести небольшое эссе в кодах по первым 10 стр. главы, посвящённой ООП, и если вас тут что-то заинтересует – спрашивайте. Это только начало, так как глава занимает 44 стр. и привести я её здесь не могу :))), да и права не имею.
Вот класс посложнее приведённого выше
<?
// Начало класса
class PrimitiveClass
{
  
// Объявляем член класса
  
var $member "Это член класса PrimitiveClass <br>";
  
// Объявляем метод класса
  
function method()
  {
    echo 
"Вызван метод класса PrimitiveClass <br>";
  }
}
// Конец класса
// Объявляем объект класса PrimitiveClass
$object = new PrimitiveClass();
// Вызываем метод method()
$object->method();
// Обращаемся к члену $member
echo $object->member;
?>

// Методы класса могут вызываться и внутри членов классов
<?
class PrimitiveClass
{
  
// Объявляем член класса
  
var $member "Это член класса PrimitiveClass <br>";
  
// Объявляем метод класса
  
function method()
  {
     echo 
"Вызван метод класса PrimitiveClass <br>";
  }
  function 
use_method()
  {
     echo 
"При помощи метода use_method() можно вызвать
           метода method() <br>"
;
     
$this->method();
  }
}
// Объявляем объект класса PrimitiveClass
$object = new PrimitiveClass();
// Вызываем метод use_method()
$object->use_method();
?>

Членам класса можно присваивать значения как обычным переменным программы
<?
class PrmitiveClass
{
  var 
$member;
  
// Объявляем метод
  
function PrintMember()
  {
    echo 
"Член member = {$this->member}";
  }
}
// Объявляем объект класса PrmitiveClass
$obj = new PrmitiveClass;
// Присваеваем члену member значение
$obj->member 3;
// Обратимся к методу PrintMember() объекта $obj
$obj->PrintMember();
?>

Конструктор и деструктор
<?
class WorkWithFile
{
  
// Дескриптор файла
  
var $file;
  
// Буфер
  
var $buff;
  
// Конструктор
  
function __construct($filename)
  {
    
// открытие файла
    
$this->file fopen($filename,"r");
    if(!
$this->file)
    {
      echo(
"Ошибка открытия файла");
    }
  }
  function 
read()
  {
    
// чтение из файла
    
$this->buff fread($this->file,100);
  }
  function print()
  {
    
// вывод информации
    
print $this->buff;
  }
  function 
count() // подсчет количества строк в файле
  
{
    if (
$this->file)
    {
      
$counter 0;
      while(!
feof($this->file))
      {  
        
$str fgets($this->file);
        
$this->counter++;  
      }
      echo(
$counter);
    }
    else
    {
      echo(
"Ошибка открытия файла");
    }
  }
  
// Деструктор
  
function __destruct()
  {
    
// закрытие файла 
    
fclose($this->file);  
  }
}
$first = new WorkWithFile("c:/www/html/file.txt");
$second = new WorkWithFile("c:/www/html/file_new.txt");
$first->read();
$first->print();
$second->count;
$second->read();
$second->print();
?>



http://www.softtime.ru/php5/

   
 
 автор: Кузнецов М.В.   (05.08.2004 в 02:14)   письмо автору
 
   для: cheops   (04.08.2004 в 22:02)
 

Маловато, конечно, для введения в ООП :)

   
 
 автор: Sonic   (05.08.2004 в 03:17)   письмо автору
 
   для: Кузнецов М.В.   (05.08.2004 в 02:14)
 

Я так интуитивно уже понимаю что такое, большшое спасибо делфи конечно :) А книжку куплю :) Вы хорошо описываете :) Буду искать

   
 
 автор: streloc   (09.02.2006 в 13:43)   письмо автору
 
   для: Sonic   (05.08.2004 в 03:17)
 

книжку купил и очень доволен.

   
 
 автор: Artem S.   (09.02.2006 в 16:35)   письмо автору
 
   для: cheops   (04.08.2004 в 22:02)
 

конструкция var {переменная} в php5 является устаревшей и вызывает "ошибку структуры" (забыл как точно), вместо этого ипользуются ключевые слова public, privat и protected

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования