- •Распределенные базы данных.
- •Назначение, основные характеристики и компоненты клиент/серверных систем.
- •Преимущества клиент/серверных систем
- •Возможности ms sql .
- •Характеристики языка Transact-sql
- •Переменные,типы переменных в Transact-sql.
- •Типы переменных
- •Команда if…else Пример программы.
- •Команды delet, insert, update. Примеры программы. Синтаксис оператора insert
- •Синтаксис
- •Понятие хранимой процедуры. Пример программ.
- •Понятие транзакции. Пример программы.
- •Понятие триггера. Пример программ.
- •Объектно-ориентированное программирование в рнр-5.
- •Реализация наследования в php5.
- •Создание классов, атрибутов и операций в php-5.
- •Константы в классах
- •Статические атрибуты и методы
- •Создание экземпляра класса в рнр5.
- •Конструкторы и деструкторы в php-5. Вызов операций класса.
- •Классы в php-5 для работы с базами данных и их методы.Ответ в вопросе 14 и в 18.
- •Связь php с базой данных MySql
Реализация наследования в php5.
Насле́дование — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом. (Википедиа)
Говоря простыми словами наследование, это такой механизм, который позволяет расширять класс за счет методов другого класса. Для того, чтобы наследовать методы и свойства другого класса, необходимо воспользоваться оператором extends. Например, чтобы создать второй класс, который расширяет MyClass и добавляет методы, вы должны добавить следующие строки в ваш тестовый файл:
<?php
class MyClass
{
public $prop1 = "I'm a class property!";
public function __construct()
{
echo 'The class "', __CLASS__, '" was initiated!<br />';
}
public function __destruct()
{
echo 'The class "', __CLASS__, '" was destroyed.<br />';
}
public function __toString()
{
echo "Using the toString method: ";
return $this->getProperty();
}
public function setProperty($newval)
{
$this->prop1 = $newval;
}
public function getProperty()
{
return $this->prop1 . "<br />";
}
}
class MyOtherClass extends MyClass
{
public function newMethod()
{
echo "From a new method in " . __CLASS__ . ".<br />";
}
}
// Создание объекта
$newobj = new MyOtherClass;
// Вывод объекта
echo $newobj->newMethod();
// Использование метода родительского класса
echo $newobj->getProperty();
?>
Замена унаследованных методов и свойств.
Для того, чтобы заменить унаследованный метод родительского класса в новом классе, необходимо просто заменить этот метод в новом классе. При этом необходимо использовать то-же имя, которое было в родительском классе:
<?php
class MyClass
{
public $prop1 = "I'm a class property!";
public function __construct()
{
echo 'The class "', __CLASS__, '" was initiated!<br />';
}
public function __destruct()
{
echo 'The class "', __CLASS__, '" was destroyed.<br />';
}
public function __toString()
{
echo "Using the toString method: ";
return $this->getProperty();
}
public function setProperty($newval)
{
$this->prop1 = $newval;
}
public function getProperty()
{
return $this->prop1 . "<br />";
}
}
class MyOtherClass extends MyClass
{
public function __construct()
{
echo "A new constructor in " . __CLASS__ . ".<br />";
}
public function newMethod()
{
echo "From a new method in " . __CLASS__ . ".<br />";
}
}
// Создание объекта
$newobj = new MyOtherClass;
// Вывод объекта
echo $newobj->newMethod();
// Использование метода родительского класса
echo $newobj->getProperty();
?>
В результате мы получим:
A new constructor in MyOtherClass.
From a new method in MyOtherClass.
I'm a class property!
The class "MyClass" was destroyed.
Существую ситуации, когда необходимо заменив метод в новом классе, вызвать этот же метод, но только в родительском классе. В таких случаях используется оператор parent::
Пример:
<?php
class MyClass
{
public $prop1 = "I'm a class property!";
public function __construct()
{
echo 'The class "', __CLASS__, '" was initiated!<br />';
}
public function __destruct()
{
echo 'The class "', __CLASS__, '" was destroyed.<br />';
}
public function __toString()
{
echo "Using the toString method: ";
return $this->getProperty();
}
public function setProperty($newval)
{
$this->prop1 = $newval;
}
public function getProperty()
{
return $this->prop1 . "<br />";
}
}
class MyOtherClass extends MyClass
{
public function __construct()
{
parent::__construct(); // Call the parent class's constructor
echo "A new constructor in " . __CLASS__ . ".<br />";
}
public function newMethod()
{
echo "From a new method in " . __CLASS__ . ".<br />";
}
}
// Создаем объект
$newobj = new MyOtherClass;
// Выводим объект
echo $newobj->newMethod();
// Использование метода родительского класса
echo $newobj->getProperty();
?>
В результате в окне браузера можно наблюдать:
The class "MyClass" was initiated!
A new constructor in MyOtherClass.
From a new method in MyOtherClass.
I'm a class property!
The class "MyClass" was destroyed.