создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

PHP. Руководство по PHP. 2005

The BasicsПред.Глава 19. Классы и объекты (PHP 5)След.

The Basics

class

Every class definition begins with the keyword class, followed by a class name, which can be any name that isn't a reserved word in PHP. Followed by a pair of curly braces, of which contains the definition of the classes members and methods. A pseudo-variable, $this is available when a method is called from within an object context. $this is a reference to the calling object (usually the object to which the method belongs, but can be another object, if the method is called statically from the context of a secondary object). This is illustrated in the following example:

<?

class A

{

function foo()

{

if (isset($this)){

echo '$this is defined (';

echo get_class($this);

echo ")\n";

}else{

echo "\$this is not defined.\n";

}}

}

class B

{

function bar()

{

A::foo();

}}

$a = new A();

$a->foo();

A::foo();

$b = new B();

$b->bar();

B::bar();

?>

Результат выполнения данного примера:

$this is defined (a)

$this is not defined.

$this is defined (b)

$this is not defined.

Пример 19-1. Simple Class definition

<?

class SimpleClass

{

//member declaration

public $var = 'a default value';

//method declaration

public function displayVar(){

echo $this->var;

}}

?>

new

To create an instance of an object, a new object must be created and assigned to a variable. An object will always be assigned when creating a new object unless the object has a constructor defined that throws an exception on error.

Пример 19-2. Creating an instance

<?

$instance = new SimpleClass()

?>

When assigning an already created instance of an object to a new variable, the new variable will access the same instance as the object that was assigned. This behaviour is the same when passing instances to a function. A new instance of an already created object can be made by cloning it.

Пример 19-3. Object Assignment

<?

$assigned = $instance;

$reference =& $instance;

$instance->var = '$assigned will have this value';

$instance = null; //$instance and $reference become null

var_dump($instance);

var_dump($reference);

var_dump($assigned);

?>

Результат выполнения данного примера:

NULL

NULL

object(SimpleClass)#1 (1){ ["var"]=> string(30) "$assigned will have this value"

}

extends

A class can inherit methods and members of another class by using the extends keyword in the declaration. It is not possible to extend multiple classes, a class can only inherit one base class.

The inherited methods and members can be overridden, unless the parent class has defined a method as final, by redeclaring them within the same name defined in the parent class. It is possible to access the overrided method or members by referencing them with parent::

Пример 19-4. Simple Class Inherintance

<?

class ExtendClass extends SimpleClass

{

//Redefine the parent method

function displayVar()

{

echo "Extending class\n";

parent::displayVar();

}}

$extended = new ExtendClass();

$extended->displayVar();

?>

Результат выполнения данного примера:

Extending class

a default value

Пред.

Начало

След.

Классы и объекты (PHP 5)

Уровень выше

Autoloading Objects

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

Ваше письмо×
Free Web Hosting