Скрипты | Партнерские программы | Осторожно! Партнерские программы - кидалы | Поиск партнерских программ по тематике | Хостинг | Купить рекламу! | Лучшие баннерные сети | СD диски и книги для вебмастеров
Заработай!
Партнерская программа для русскоязычных сайтов

BLACK LIST ! Партнерские программы - кидалы

Сервис подбора партнерских программ под тематику Вашего сайта


!!! Список лучших партнерских программ !!!

!!! Лучшие рекламные брокеры Рунета !!!

!!! Продажа ссылок с сайта !!!
 

Реклама

Реклама

Реклама

Реклама


 

 
 

Новое в PHP5

XML и веб-сервисы

Безопасный офис

Защита от копирования и методы ее взлома

История PHP

Корпоративная информационная система

Новое в PHP5

Основные типы данных PHP

Основы языка программирования РНР 5

Программистские байки

Торговая информационная система

Новая объектно-ориентированная модель

Новые объектно-ориентированные особенности

Новый диспетчер памяти

Отказ от поддержки Windows 95

Прочие нововведения в язык программирования PHP5




Нововведений было настолько много, что мы не станем подробно описывать их в данном разделе. Вот список лишь самых основных новинок:
• Модификаторы public/protected/private, позволяющие управлять доступом к свойствам и методам, например:
class MyClass {
private $id = 18;
public function getldO {
return $this->id; } }
• Унифицированное имя конструктора: construct(). Теперь можно не присваивать конструктору имя класса, а объявлять его с именем __construct(), что, несомненно, снижает трудозатраты при необходимости изменения имен классов, особенно на ранних стадиях разработки.
class MyClass {
function __construct() {
print "Внутри конструктора";
} }
• Добавлена поддержка деструкторов объектов, отсутствовавшая в ранних версиях РНР. Деструкторы должны объявляться как методы с именем __destruct(), они вызываются автоматически при удалении объектов.
class MyClass {
function __destruct() {
print "Выполняется уничтожение объекта";
} }
• Интерфейсы. Дают возможность компенсировать отсутствие множественного наследования. Любой класс может иметь только одного «родителя», но может реализовать столько интерфейсов, сколько потребуется.
interface Display {
function displayO; } class Circle implements Display {
function displayO {
print "Рисование окружности\п";
} }
• Оператор instanceof. Выполняет проверку принадлежности объекта к заданному классу. Теперь не рекомендуется применять устаревшую функцию is_a() из РНР 4.
if ($obj instanceof Circle) {
print '$obj является экземпляром класса Circle'; }
• Финальные методы. При создании метода можно явно запретить его переопределение в производных классах, указав модификатор final.
class MyClass {
final function getBaseClassName() { return __CLASS__;
} }
• Финальные классы. Класс, объявленный с модификатором final, уже не может выступать в качестве родоначальника для других классов. Следующий пример приведет к появлению ошибки:
final class FinalClass { }
class BogusClass extends FinalClass { }
• Операция клонирования объектов. Теперь, чтобы создать полную копию объекта, необходимо указать ключевое слово clone. Класс может содержать метод __clone(), который будет вызываться в момент создания копии (после того как будут скопированы все свойства исходного объекта).
class MyClass {
function __clone() {
print "Выполняется клонирование объекта";
} >
$obj = new MyClassO; $obj_copy = clone $obj;
• Константы класса. Определение класса теперь может содержать объявления констант, доступ к которым осуществляется через имя класса.
class MyClass {
const SUCCESS = "Success";
const FAILURE = "Failure"; } print MyClass::SUCCESS;
• Статические методы. Теперь имеется возможность объявлять статические методы класса, что позволяет вызывать их вне контекста; объектов. Статические методы не получают ссылку $this, поэтому они могут работать только со статическими свойствами и методами класса.
class MyClass {
static function helloWorldO { print "Привет, МИР!";
} } MyClass:: helloWorldO;
• Статические свойства класса. Свойства класса также могут быта объявлены как статические, доступ к которым осуществляется через имя класса. Чаще всего к этой возможности прибегают для создания единичного образца-экземпляра класса.
class Singleton {
static private $instance = NULL;
private function __construct() {
}
static public function getlnstanceO {

if (self::$instance == NULL) {
self::$instance = new Singleton(); }
return self::$instance; } }
• Абстрактные классы. Класс может быть объявлен как абстрактный с помощью модификатора abstract, что предотвратит возможность создания экземпляров этого класса, но при этом сохранится возможность порождать от него дочерние классы.
abstract class MyBaseClass {
function display() {
print "Вызвана процедура вывода по умолчанию";
} }
• Абстрактные методы. Метод класса может быть объявлен как абстрактный с помощью модификатора abstract, при этом его реализация откладывается до момента создания класса-наследника. Класс, содержащий абстрактные методы, в свою очередь тоже должен быть объявлен абстрактным.
abstract class MyBaseClass {
abstract function displayO; }
• Указание типов входных аргументов. Теперь объявления функций могут содержать объявления типов входных аргументов. Если такой функции в момент вызова передать аргумент другого типа, будет сгенерировано сообщение об ошибке.
function expectsMyClass(MyClass $obj) { }
• Поддержка разыменования ссылок на объекты, возвращаемых методами. В РНР 4 отсутствовала возможность обращения к объектам, ссылки на которые возвращались функциями, поэтому приходилось для этих целей задействовать временные переменные. Например, в РНР 4 необходимо было писать такой код:
$dummy = $obj->method(); $dummy->method2();
В РНР 5 допускается прямое обращение к возвращаемой ссылке на объект:
$obj->method()->method2();
• Итераторы. РНР 5 предусматривает возможность реализации интерфейса Iterator в классах, благодаря чему можно использовать объекты в конструкции fоreach ().
$obj = new Mylteratorlmplementation();
foreach ($obj as $value) {
print "$value"; }
• Автоматическая загрузка классов функцией __autoload(). Большинство разработчиков, занимающихся написанием объектно-ориентированных приложений, располагают определения классов в отдельных файлах (каждый класс в отдельном файле). Самый большой недостаток такого подхода - необходимость вставлять в начало сценария длинный список подключаемых файлов (по одному на каждый класс). В РНР 5 необходимость в этом отпала. Вы можете определить свою функцию __autoload(), которая автоматически вызывается, когда программа пытается обратиться к несуществующему классу. После вызова функции попытка обращения к классу повторяется и, если класс по-прежнему не определен, выдается сообщение об ошибке.
function __autoload($class_name) {
include_once($class_name . "php"); }
$obj = new MyClass1(); $obj2 a new MyClass2();



 

Реклама и информация
На любом этапе - авторегистрация в каталогах (1700 каталогов)

Оптимизация рекламы на сайте - путь к удвоению Ваших доходов!

Последовательность вебмастерской работы (краткая памятка):

1. Заказать и прочесть необходимые книги, тематические CD-диски, курсы, программное обеспечение веб-дизайна и веб-строительства

2. Зарегистрировать домен и купить хостинг

3. Приобрести и установить необходимые скрипты (опция)

4. Для быстрой раскрутки сайта прикупить рекламу (опция)

5. Вступить в баннерные сети по тематике сайта

6. Вступить в партнерские программы по тематике сайта

7. Производить регулярно обновления, совершенствовать дизайн и программную начинку сайта, получать доходы от партнерских программ, обмениваться ссылками и т.п.


Полезности

   

                           На главную страницу сайта

   



Rambler's Top100