������� � ���5. ������ � �������. ������� ��� ������ � �������� � ��������. ����������� ������. ���������� �������. ���������

���� ���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 (���������, �������������). ��������� ����� � ������ �������������: privateprotected, �� ��� ������ ����������� ������� � ���������. ��� ���������� ������� �������� ������������� �����������.

�� �����������, ����� ������� ����������� ������ � ��������� �������. ������ � ������ ������, ������������ �������� ->.

������ ������. ���� $this

������ ������� ����� �������� ��� ����������, �� �������� �� ��� ����������, � ��� �������. ������ ������ ������������, ����� �������� �������� ������� ������� ��� ���������� �����-������ ������ ��������. ���� � ������(�������) ��������� ���������� � ������-������ ��������(����������) ����� �� �������, �� ����� ������ ����� �������� ������� ������� ������� $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

���������� �������� ��������-���������������� ���������������� �������� ������������� ������ �������� ������, ������ � ������� �������������� ����� �������� ������ ������. ��� ��������� ������ ��������� ���������� ������, ���������� �������� ��������, ������� ����� ����������� �����, � ������� ���� ��������� ������ ��� ������.

���������� ����������� � ���, ��� ��� ������� �� ������ ������ ���������� ��������� ��������� ����� ��� ������ � ������������ ������ ��������, ����� ������� �������� �� ��������� � ������� ������.

������� �� �������� �������� ������������� �������, ��������� � ������� �������� ����� ��� ��, ��� � �������� ������ ������. ��� �� ���������� ���������� ����������� ����������� ������ __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(); // ������� '��� �������� �����'
?>

� ���� ���-�������� ��� ����� ��������� ���.




  • ������ |

������� ��������� �� ����: ��������-��������������� ���������������� �� ���. �������� �������, ��������� � �������� � ���

����������������
Rambler's Top100