.


:




:

































 

 

 

 


- PHP




, , .

( ), , , . , . . . - :

− ;

− ;

− ;

− ;

− .

(encapsulation) , , , . , .

(inheritance) , . , - , . :

();

.

(polymorphism) , , .

, , . , " , ".

, , .

PHP Java, C++. -, . var PHP4 private, public protected PHP5. function . :

<?php

class Mycart

{//var $items=0; PHP4

private $items=0; // PHP5

public function add ($n) // $n

{

$this->items += $n;

}

public function remove ($n) // $n

{

if ($this->items > $n) {

$this->items -= $n;

return true; }

else { return false; }

}

public function show()

{

echo '$items=', $this->items;

}

}//

$instance=new Mycart();

$instance->add(5);

$instance->remove(2);

$instance->show();

echo $instance->items;//

?>

:

$items=3

Fatal error: Cannot access private property Mycart::$items in x:\home\localhost\www\my\pr41.php on line 25 private items

$instance , new. (handler), .

, : , . , $this, ' '.

PHP 5 public, protected private, .

(public) . (protected) , , () .

(private) , .

, public. , PHP 5 var, . PHP4.

PHP . , . . - . PHP4 . PHP 5 __construct(). __destruct() .

<?php //pr21

class MyClass {

private $property;

function _construct() {

echo " ";

}

function __destruct() {

echo " ";

}

function MyClass($n=1) {

echo " ";

$this->property=$n;

}

}

$obj = new MyClass(); // " "

unset($obj); // " "

$obj1 = new MyClass(10);

?>

PHP4, , PHP5 . PHP 5 : __construct(), PHP , .

, .

. , , parent.

<?php //pr22

class MyClass {

function __construct() {

echo " ";

}

function __destruct() {

echo " ";

}

}

class DerivedClass extends MyClass {

function __construct() {

echo " ";

parent::__construct();

}

function __destruct() {

echo " ";

parent::__destruct();

}

}

$obj = new DerivedClass();

unset($obj);

?>

:

/:

<?php

class Dateclass {

var $month=array("", "", "", "", "", "", "","","", "", "", "");

var $day=array ("", "", "","", "", "", "");

var $dnum; var $mnum; //

var $daym; var $year;

function Dateclass() { //:

$this->dnum = date("w");

$this->mnum = date("n");

$this->daym = date("d");

$this->year = date("Y");

}

function show(){//

$dnum =$this->dnum;

$mnum = $this->mnum;

$daym =$this->daym;

$year = $this->year;

$textday =$this->day[$dnum];

$monthm =$this->month[$mnum-1];

if ($mnum==3||$mnum==8)

{ $k=""; }

else {$k="";}

echo ": $textday, $daym $monthm$k $year .";

}

}

$obj=new Dateclass();//

$obj->show();//

?>

 

:

: , 05 2009 .

PHP 5 , , . , . , :

<?php //pr24

class MyClass{

public $property=1;

}

$obj1 = new MyClass;

$obj2=$obj1;//

echo $obj1->property; // 1

$obj2->property = 2;

echo $obj1->property; // 2

$obj3 = clone $obj1;//

echo $obj3->property; // 2

$obj3->property = 3;

echo $obj1->property; // 2

?>

clone, __clone() . __clone() , , :

<?php

class MyClass{

var $property;

function __clone() {

$this->property = 2;

}

}

$obj1 = new MyClass;

$obj1->property = 1;

$obj2 = clone $obj1;

echo $obj1->property; // 1

echo $obj2->property; // 2

?>

__clone() , $this $that.

.

<?php

class MyClass extend MySuperClass implements I1,I2,I3{

//

}

?>

, . .

<?php

abstract class MySuperClass {

abstract public function abstrFunc();

}

class MyClass extends MySuperClass {

public function abstrFunc() {

echo Be-Be-Be;

}

}

$obj = new MyClass;

$obj->abstrFunc(); // Be-Be-Be

?>

, . , ( ) . , , .

(interface) , . function - , abstract .

<?php

interface Int1 {

function func1();

}

interface Int2 {

function func2();

}

class MyClass implements Int1, Int2 {

public function func1() {

echo 1;

}

public function func2() {

echo 2;

}

}

$obj = new MyClass;

$obj->func1(); // 1

$obj->func2(); // 2

?>

, , .

PHP 5 (final).

, final, , .

<?php

class MyClass {

final public function func() {

//

}

}

class MyClass1 extends MyClass {

//

//

// MyClass

public function func() {

//

}

}

?>

, final , .

<?php

final class MyClass {

//

}

//

//

class MyClass1 extends MyClass {

//

}

?>

final, , , final .

Java, PHP . PHP .

<?php

class MyClass {

const CONSTANT = " ";

}

echo MyClass::CONSTANT; // " "

?>

PHP 5 .

<?php

class MyClass {

static $static = 1;

}

echo MyClass::$static; // 1

?>

PHP . . . , .

, , . .

<?php

class MyClass {

static function statFunc() {

echo " ";

}

}

MyClass::statFunc(); // " "

?>

$this, , .

instanceof PHP 5 , - .

<?php

class MyClass { }

$obj1 = new MyClass();

if ($obj1 instanceof MyClass) {

echo "\$obj1 - MyClass";

}

class MyClass1 extends MyClass { }

$obj2 = new MyClass1();

if ($obj2 instanceof MyClass) {

echo "\$obj2 - , MyClass";

}

interface Int { }

class MyClass2 implements Int { }

$obj3 = new MyClass2();

if ($obj3 instanceof Int) {

echo "\$obj3 - , Int";

}

?>

instanceof , .

PHP 5 (dereferencing) , .

<?php

class MyClass1 {

public function showClassName() {

echo " MyClass1";

}

}

class MyClass2 {

public function showClassName() {

echo " MyClass2";

}

}

function deref($obj) {

switch ($obj) {

case "MyClass1":

return new MyClass1();

case "MyClass2":

return new MyClass2();

}

}

deref("MyClass1")->showClassName(); // "

// MyClass1"

deref("MyClass2")->showClassName(); // "

// MyClass2"

?>

, .

PHP 5 (class type hints), .

<?php

interface Int1 {

function func1(Int1 $int1);

}

interface Int2 {

function func2(Int2 $int2);

}

class MyClass implements Int1, Int2 {

public function func1(Int1 $int1) {

//

}

public function func2(Int2 $int2) {

//

}

}

$obj1 = new MyClass;

$obj2 = new MyClass;

$obj1->func1($obj2);

$obj1->func2($obj2);

?>

, .

, __construct, __destruct, __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __invoke, __set_state, __clone, _, PHP .

__get($name) __set($name,$value) . .

__set() , . __get() __set() , .

<?php

class MyClass {

private $properties;

function __set($name, $value) {

echo " $name = $value";

$this->properties[$name]=$value;

}

function __get($name) {

echo " ", $name;

return $this->properties[$name];

}

}

$obj = new MyClass;

$obj->property = 1; // " property=1"

$a = $obj->property; // " property"

echo $a; // 1;

?>

PHP 5 __call().

<?php

class MyClass {

function __call($name, $params) {

echo " $name $params[0]";

}

}

$obj = new MyClass;

echo $obj->method(1); // " method

// 1"

?>

__call() .

PHP 5 - __METHOD__ .

<?php

class MyClass {

public function myMethod() {

echo " ", __METHOD__;

}

}

$obj = new MyClass;

$obj->myMethod();// " MyClass::myMethod"

function myFunction() {

echo " ", __METHOD__;

}

myFunction(); // " myFunction"

?>

__METHOD__ .

PHP 5 - __toString().

<?php

class MyClass {

function __toString() {

return " __toString()";

}

}

$obj = new MyClass;

echo $obj; // " __toString()"

?>

__toString() .

 

PHP 5 . try/catch/throw .

<?php

try {

$fp = @fopen("file.txt", "w");

if (!$fp) throw new Exception(" !");

//

fclose($fp);
}

catch (Exception $exception) {

echo " ", $exception->getLine();

echo $exception->getMessage(); // "

// "

}

?>

catch. , Exception.





:


: 2016-07-29; !; : 492 |


:

:

, ,
==> ...

1287 - | 1252 -


© 2015-2024 lektsii.org - -

: 0.157 .