Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Jazyk PHP - pokračování

PDF
Stáhnout kompletní materiál zdarma (1.56 MB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

eval('function clone($object) {

return $object;

}
');

}
?> 

kuk cloning2.php

Klonování 

Klonování

 Můžeme definovat methodu __clone(), která bude 

Můžeme definovat methodu __clone(), která bude
volána při klonování

volána při klonován

 Například můžeme sledovat, zda daný objekt je 

Například můžeme sledovat, zda daný objekt je
klon

klo

Klonování 

Klonování

<?php
class A {

private $x = 1;
public $is_clone = false;

function __clone()

{

$this->is_clone =

true;

$this->is_clone =

true

}

}

$instance1 =

new A();

$instance2 =

clone $instance1;

echo $instance1->is_clone?"inst1 je klon":"inst1 neni klon";echo $instance2->is_clone?"inst2 je klon":"inst2 neni klon";?> 

kuk cloning2.php

Dynamické metody

Dynamické metod

 Pokud

Poku zavol

zavo áme

ám metodu, která neexistuje:

metodu, která neexistuje

– bude zavolána funkce 

bude zavolána funkce __call(), 

__call(), pokud

poku existuje

existuj

– pokud

poku neexistuje

neexistuj funkce

funkc __call(), 

__call(), dojde

dojd k 

k chyb

chy ě

 Můžeme řešit volání neexistujících metod pomocí 

Můžeme řešit volání neexistujících metod pomocí
metody __

metody _ call

cal ()

(

 Této metodě je předáno jméno a pole argumentů

Této metodě je předáno jméno a pole argument

 Této metodě je předáno jméno a pole argumen

Této metodě je předáno jméno a pole argume

Dynamické metody

Dynamické metod

<?php
class math {

function __call($name, $args){

switch ($name) {

case 'add':

return array_sum($args);

case 'divide':

$val = array_shift($args);
foreach ($args as $v) $val /= $v;
return $val;

return $val

default: trigger_error(sprintf('Zavolána

nepodporovaná funkce'.get_class($this).'->'.$name), E_USER_ERROR);

}

}

}

$m =

new math();

echo $m->add(1,2); //  3echo $m->divide(8,2); //  4echo $m->substract(2,3); // error?>

kuk dynamic.php

Dynamické vlastnosti

Dynamické vlastnost

 Některé vlastnosti mohou být definovány za běhu 

Některé vlastnosti mohou být definovány za běhu
programu.

Témata, do kterých materiál patří