-
Notifications
You must be signed in to change notification settings - Fork 34
/
04-magicke-metody.php
45 lines (35 loc) · 1.26 KB
/
04-magicke-metody.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
class Trida{
/**
* Funkce volaná v případě volání neexistující metody objektu
* @param string $name
* @param $argumenty
*/
public function __call($name, $argumenty){
echo 'byla zavolána metoda '.$name.PHP_EOL;//ladicí výpisy jsou tu uvedeny jen pro účel výuky, místo nich by tu samozřejmě byl příslušný kód k vykonání
var_dump($argumenty);
}
/**
* Funkce volaná v případě volání neexistující statické metody objektu
* @param string $name
* @param $argumenty
*/
public static function __callStatic($name, $argumenty){
echo 'byla zavolána statickámetoda '.$name.PHP_EOL;
var_dump($argumenty);
}
public static function test(){
echo 'normální statická metoda test';
}
// v PHP 5.6+ je možné definovat parametr, který shromáždí všechny parametry do pole
public static function test2(...$params){
echo 'normální statická metoda';
}
}
$objekt = new Trida();
$objekt->nejakaFunkce();
$objekt->jinaFunkce('a');
Trida::statickaFunkce('a','b','c');
Trida::test();
Trida::test('a');//to, že do volání metody napíšeme parametr, který daná metoda nemá, PHP odignoruje
Trida::test2('a','b');