���� ���5 �������� ��������-��������������� ������ ����������������. ��������-��������������� ���������������� (���) ���������� ������ ��������� � ������� � ���������� � ������� ��������. ��������� ���������� �������� � ��� �������� �������. PHP �� ��������� ������� ����������� ���� ��������� ��������� ���. ������, ����� ������ PHP5 ��������� ��� � PHP ����� ����������� ������.
��������-��������������� ���������������� �������� ��:
������������� ���������� ��������� ��������� ������ ��������� � ����� ������� ������, � ���������� ���� ����������� �������� ��������������� � ���� ��������. ��� �������� � ��������� ���������, ��������� �� ��� ����������� �������������� ������.
����������� ��������� ������������ ���� � �� �� ����� ��� �������, �� ���������� ������ �����. ������� � ������������ �������� ��, ��� �� ��������� �������������� ��������� ����� �������� ����������� ����������� ��� ������ ��������. ����������� ����������� ��������� ��������� ������� ��������.
������������ ��������� ������ ������� ����������� �������� ������� �������, �� ������� � ������������ ��������. ��� ����������� ��������� ������ ����� �������, � ��� ������������ ������ ����� ����������� ����������� ����������, ������� ���������� ������ ��� ������������ �������.
����� — ��� ��������, ������ ���� ������, �� �������� ��������� �������. ��� ����� ������������� ��� ������ ���� "���������" ��� ��������� ��������� ������ � ������� (������ ���������� ��������). ���� ������� �����, �� ����� - ��� ������������ ��� ������.
������ — ��������� ������. ��� ������������ ������ (�������) � ������� (�������) ��� �� ���������. �������� � ������ ���������� ������� ������. ������, �������� �������� ��� ��, ��� ������������ ������������.
���� ����� ����� ������������� ��� ��� ������, �� ������ � ��� ���������� (�� ��������). ������ ����� ������������ �������� � ����������� ��������� ������ ������, ��� � ����������� �����������.
������ ������� ������ � ��� (����� ������) ����� ���� ���� �������, ���� ���. �������� ������ � ����� ������ �������� ���������� ��� ������ ������ ���������, ������� �� �������� ������ �������. � ��� �������� ������ � ����� ������ �������� ������ ������ ����� �������.
�������� ������� � PHP ���������� ��������� ������ class � ����� ��������� ���������:
class ���_������ {
�����������_�������
�����������_�������
}
������ ��������� �� ������ ������������� ������ � ������� ��������� new:
$ ���_���������� = new ���_������(���������);
�������� � ����������� ������ �������� ��� ������� ����������. ��� ���� �� ������ ������������ �������� ������������, ����� ���������� ��� ������� �������� �� ���������. �������� ������ ���� ��������(��������� �����), � �� ���������� ����������� ����������� ���������. ��� ���������� ���������� ������������� ������������ �������� ����� var.
������ �������� ������:
<?php
// ������� ����� ����� Coor:
class Coor {
// ������ (��������):
var $name;
var $addr;
// ������:
function Name() {
echo "<h3> ����</h3>";
}
}
// ������� ������ ������ Coor:
$object = new Coor;
//������� ������
$object ->Name();
?>
� ���� ���-�������� ��� ����� ��������� ���.
��������! ������������ (�������� �����) var ����� ������ �������� �������� ����������� ����� �������� ��-�� �������� ���� ������. ������ var ����� ������������ ������������ public (���������, �������������). ��������� ����� � ������ �������������: private � protected, �� ��� ������ ����������� ������� � ���������. ��� ���������� ������� �������� ������������� �����������.
�� �����������, ����� ������� ����������� ������ � ��������� �������. ������ � ������ ������, ������������ �������� ->.
������ ������� ����� �������� ��� ����������, �� �������� �� ��� ����������, � ��� �������. ������ ������ ������������, ����� �������� �������� ������� ������� ��� ���������� �����-������ ������ ��������. ���� � ������(�������) ��������� ���������� � ������-������ ��������(����������) ����� �� �������, �� ����� ������ ����� �������� ������� ������� ������� $this->. ����� �������� � ����������� ������ ��� ������� ������� � �������������� ��������� ����� function.
���������� ������ ����������� ������� ����� ��� �������� �����.
<?php
class cheg {
var $summa=0; //������� �� �����
function wedsum($sum) { //���������� � ����� �� �����
$sum=100;
$this->summa=$this->summa+$sum;
echo "��������� $sum ������";
}
}
$object = new cheg;
$object->wedsum($sum);
?>
� ���� ���-�������� ��� ����� ��������� ���.
������ ����� ����� ���� �������� $summa � ���� ����� wedsum(). ����� ������������ ��� �������� ���������� �����, ����������� ��� ������� �������� ����� �� ��������� �����, �.�. ��� ��������� �����. � ������� ������ wedsum() ����� �������� ������� ��������� �����, ������ � �������� ��������� �����, ������� ������� �������� � ������� �����(���� ��� ����� �������������) ��� ������� �� �������(���� ����� �������������).
���������� ��� ���� ������:
<?php
// ������� ����� ����� Coor:
class Coor {
// ������ (��������):
var $name="������";
// ������:
function Getname() {
echo $this->name;
}
function Setname($name) {
$this->name = $name;
}
}
// ������� ������ ������ Coor:
$object = new Coor;
// ������ ��� ��������� ����� ���������� ����� Setname():
$object->Setname("����");
// � ��� �������, ��� � ������, Getname():
$object->Getname();
// �������� ������� '����'
?>
� ���� ���-�������� ��� ����� ��������� ���.
��� ��������� ����� ������������ ����� Setname(). ��������� $this ����� ����� ������������ ��� ������� � �������, � �� ������ ��� ������� � ������:
function Setname($name) {
$this->name = $name;
$this->Getname();
}
������ �������, ����������� �������������� ������, ��������-��������������� ������ ��� ������������� ������������ ����������� ������. ����������� ������ ��������� ������ ������� �������� ��������� �������� � ����������� ��� ������� �������������.
����������. ������ ����������� ����� ������������ ����� ��������� �������������.
����������� ������ �������
����� | �������� |
__construct() | ����������� ������; �����, ������� ������������� ����������� � ������ �������� ������� �� ������ ���� ��������� ������� ������ |
__destruct() | ���������� ������; �����, ������� ������������� ����������� � ������ ����������� ������� |
__autoload() | ������������� �������, �� ���������� ������� ������; ��������� ������������� ������� ����� ��� ������� �������� ������� |
__set() | ��������; ����� ��������������� ��� ��������� �������� �������� |
__get() | ��������; ����� ��������������� ��� ������ ������� |
__isset() | ��������� ������ ������ �������� ������������� �������� ��� ������ ����������� isset() |
__unset() | ��������� ������ ������ �������� �������� ��� ������ ����������� unset() |
__call() | ��������� ������ ������������ ����� |
__toString() | ��������� ��������������� (�����������) ������ � ������ |
__set_state() | ��������� ������������ ������� ������� |
__clone() | ��������� ��������� ������������� ������� |
__sleep | ��������� ��������� ���������� ������� ��� ��� ������������ ��� ������ ������� serialize() |
__wakeup() | ��������� ��������� ���������� ������� ��� ��� �������������� �� ���������������� ��������� ��� ������ ������� unserialize() |
������ ������� �������� � ������ �������, ��� ������������� ������� ���������� ������� �������, ����������� ������ � �������� � ���������.
������ ������� ��� ������ � �������� � ���������
������� | �������� |
calla_user_method_array ($method_name, $obj [, $par]) |
������������ ����� ������ $method_name ������� $obj � �������� ���������� $par. ������� �������� ���������� � ����� ��������� �� ����������� ������ ���; ������ ��� ������������� ������������ ������� call_user_func_array() |
call_user_func_array ($methor_name, $par) |
������������ ����� ������ ��� ������� $methor_name � �������� ���������� $par |
cfll_user_method ($method_name, $obj [, $par [, $par1, . . .]]) |
������������ ����� ������ $method_name ������� $obj � ����������� $par, $par1 � �.�. ������� �������� ���������� � ����� ��������� �� ����������� ������ ���; ������ ��� ������������� ������������ ������� call_user_func() |
call_user_func ($method_name [, $par [, $par1, . . .]]) |
������������ ����� ������ ��� ������� $methor_name � ����������� $par, $par1 � �.�. |
class_exists($class_name) |
���������� true, ���� ����� � ������ $class_name ��������, � false — � ��������� ������ |
get_class_medhods ($class_name) |
���������� ������ � ������� ������� ������ $class_name |
get_class_vars ($class_name) |
���������� ������ � ������� � �������� ������ ������ $class_name |
get_class($obj) | ���������� ��� ������, �������� ����������� ������ $obj |
get_declared_classes() | ���������� ������ � ������� ����������� ������� |
get_declared_interfaces() | ���������� ������ � ������� ����������� ����������� |
get_object_vars($obj) | ���������� ������ � ������� � ���������� ������ ������� $obj |
get_parent_class($obj) | ���������� ��� �������� ������ ��� ������� ��� ������ $obj |
interface_exists ($interface_name [, $autoload]) |
���������� true, ���� ��������� � ������ $interface_name ����������, � false — � ��������� ������. ���� �������������� �������� $autoload ����� true, ������� �������� ��������� ��������� ��� ������ ������� __autoload() |
is_a($obj, $class_name) |
��������� � �������� ������� ��������� ������ $obj, � � �������� ������� — ��� �������� ������ $class_name � ���������� true, ���� ������ �������� ����������� ������ $class_name ��� ����������� ��� �������, � false — � ��������� ������ |
is_callable($arr [, $syntax_only [, $callable_name]]) |
����������, ����� �� ���� ������ ����� ������ |
is_object($obj) | ���������� true, ���� ��������� $obj �������� ��������, � false — � ��������� ������ |
is_subclass_of($obj, $class_name) |
��������� � �������� ������� ��������� ������ $obj, � � �������� ������� — ��� �������� ������ $class_name � ���������� true, ���� ������ �������� ����������� ������� ������ $class_name, � false — � ��������� ������ |
method_exists($obj, $method_name) |
��������� true, ���� ������ $obj �������� ������� $method_name, � false — � ��������� ������ |
print_r($obj [, $return]) |
���������� ���� ������� $obj. ���� ���������� $return ��������� �������� true, ������� ���������� ��������� � ���� ������, � ��������� ������ ��������� ��������� ��������������� � ���� �������� |
property_exists ($class_name, $var) |
���������� true, ���� ���������� $var �������� ������ ������ $class_name, � false — � ��������� ������ |
�������� ����� ��� �������� ������� ��������� ������ �������� ��������� ���������. � �������, ������������ ���������� ��� ���� ��� �������������� � ����������� ��� � ��������� �������������. ����������� ����������� ��� �������� ������� �� ������ ������� ������, ���� ������ ����� ������� � �� ��������� ����������� ����. ������ ����������� ���������� ����� �������, ���� ��� �������� ������� ��������� ����� �� ��������� ��������� ���, ���������� ��������� �������� ��� ������� ��� �������� �������� ��� ������� ��� ���������.
��������� ����������� �������� ��������, ��� ������� �� �����������, � �������� �������� ������ __construct(� ����� �������� ��������� �������������_ _) ��� �� ������ ��������� � ������ ������.
������ �������� ������ ������ cheg � ������� ��������� ����� __construct:
<?php
class cheg {
var $summa=0;
function __construct($sum) {
$this->summa = $sum;
echo "�� ����� ����� $sum ������";
}
}
// ������� ����������� ������ cheg
$object = new cheg(1000);
?>
� ���� ���-�������� ��� ����� ��������� ���.
������ ��������������� �������� ������ ������ cheg:
<?php
class cheg{
var $summa;
function cheg($sum) {
$this->summa=$sum;
echo "�� ����� ����� $sum ������";
}
}
// ������� ����������� ������ cheg
$object = new cheg(1000);
?>
� ���� ���-�������� ��� ����� ��������� ���.
������ �������� ������� � ������������� ������� ����������� ���������. ������������ ��������� ��������� ��� �������� �� ���� ����.
���������� �����������: � ����������� �� ���������� ������������ ���������� ����� ���������� ������ ������������. � ������������� ������� ������� ������ cheg ����� ����������� ����� ���������. ��-������, �� ������ ������� �����������, ������� ������ ������� ������, �� �� �������������� ��� ��������:
$object = new cheg()
��-������, ������ ����� ������� ��� ������ ������������, ������������� � ������, � � ���� ������ �� �������� ������ ������ cheg � ������������ �������� ��� �������� summa:
$object = new cheg(1000)
�����������, ����� ����������� � ��������� ������, ���������� ��������� ��� __construct(), ��� �������� ����� ���������� ������ � ���������. ������������ � �������-��������� �� ���������� �������������. ����� ������� �����������, ����������� � ������������ ������, ������� ���������� � ������ parent::__construct().
������ ����� ���������� � ���� ���������� ��������, ������ ������� unset() � ������� �� � �������� ��������� ��� �������. �� � ����� ������ ��� ���������� ������ �������� ������, ���������� ��������, ��������������, � ������ �� ��� ���������. � ��������� ������ ���5 ���������� ������� __destruct(), ������� ���������� ������������� ��� ����������� �������.
���������� ������, � ������� ������������ ����������� � ���������� ������, � ����� �������� ������� ��� ���������� ���������� ������.
<?php
class ched {
function __construct() {
print "����������� \n <br>";
$this->name = "ched";
}
function __destruct() {
print "������������ " . $this->name. "\n <br>";
}
}
$obj = new ched();
unset($obj);
print "� ������ ����������� ������ ��������";
?>
� ���� ���-�������� ��� ����� ��������� ���.
���������� �������� ��������-���������������� ���������������� �������� ������������� ������ �������� ������, ������ � ������� �������������� ����� �������� ������ ������. ��� ��������� ������ ��������� ���������� ������, ���������� �������� ��������, ������� ����� ����������� �����, � ������� ���� ��������� ������ ��� ������.
���������� ����������� � ���, ��� ��� ������� �� ������ ������ ���������� ��������� ��������� ����� ��� ������ � ������������ ������ ��������, ����� ������� �������� �� ��������� � ������� ������.
������� �� �������� �������� ������������� �������, ��������� � ������� �������� ����� ��� ��, ��� � �������� ������ ������. ��� �� ���������� ���������� ����������� ����������� ������ __set() � __get(), ������� ����� �������� �����������. ����� __get(), ��������������� ��� ������ ��������, ��������� ������������ ��������, ������� ������ ������. ����� __set() ��������� ��������� �������� ����� �������� � ��������� ��� ���������, ������ �� ������� �������� ������, � ������ — ��������� ��������.
���������� ������, ��� ��� ������ ������ __set() ������� ������������� ����� ��������, ������� ���������� � ������ $this->, � ������������� ����� __get() ��������� ������� �� �� �������.
����������. ������� �������� ��������, ��� ������ __set() � __get() ����� ��������� ��� ���������, ��� � ���������.
������������� ������� __set() � __get()
<?php
class cls
{
private $arr=array();
private function __get($index)
{
return $this->arr($index);
}
private function __set($index, $value)
{
$this->arr[$index]=$value;
}
}
?>
��� ����� �� ��������, ����� cls ������������� ��� ��������� � ������ ������� � ������� ��������������� ������� � �������� ������� $arr.
���������� ������, ��� ��������� � ����� $name �������� � �������� ���������������� �������� �������.
��������� � ��������������� �������� $name
<?php
require_once("356.php");
//������� ������ ������
$obj=new cls();
$objt=$obj->name= "Hello world! <br>";
echo $objt;
echo "<pre>";
print_r($obj);
echo "</pre>";
?>
����� ������� ��������� ����� �������� �������� � �������� ������ �������� ��������� ������� $arr. ����� ���� � ������ ��� ����������, �� ��������� __set() � __get() ������������� ��������� � ����, ���� �� �������� �������� (����� ������������ ������� private), � �� �������������, ���� �� �������� �������� (public).
������������ — ��� �� ������ �������� ������ ����� ������, � ���������� ��� ������������� ������, ����� ������� ��� ��������� �����-������ �����, ����������� ������ ��� �������.
����, ����� � ��� ���� ��������� ����� Cheg � ������������� ���������� � ��������. ��������� ����� ������� ����� ����� Child, ��� �� "�����������" ����������� ������ Cheg, ����������� ��� ��������� ����� ������� � �������.
����� ���������� �����-���������, ������������ ����� ���������:
class ���_������-���������� extends ���_������-�������� {
�����������_�������
�����������_�������
}
� �������, ��������� �� ������ ������ ���_������-����������, �������� ��� �������� � ������ ������ ���_������-��������. ������ �������� ����������� �� �����: � � ������� ������������� ������ �������� � ������ ��� ����������� �� ��������.
<?php
class Cheg {
function cheg_funct() {
echo "<h1>��� ������������ �������</h1>";
}
function test () {
echo "<h1>��� ������������ �����</h1>";
}
}
class Child extends Cheg { //�������� ������ ����������
function child_funct() { //�������� ������
echo "<h2>��� �������� �������</h2>";
}
function test () { //����� ������
echo "<h2>��� �������� �����</h2>";
}
}
$object = new Cheg;
$object = new Child;
$object->cheg_funct(); // ������� '��� ������������ �������'
$object->child_funct(); // ������� '��� �������� �������'
$object->test(); // ������� '��� �������� �����'
?>
� ���� ���-�������� ��� ����� ��������� ���.
������� ��������� �� ����: ��������-��������������� ���������������� �� ���. �������� �������, ��������� � �������� � ���