V testu je uvažováno s PHP 5.6.
Jaký je rozdíl mezi funkcemi require a include:
- žádný, obě funkce se chovají stejně
- při chybějícím souboru vyvolá
includeWarning,requirevyvolá Fatal Error includeje zastaralá funkce, doporučuje se použítrequire- při chybějícím souboru vyvolá
includeFatal Error,requirevyvolá Warning
(2)
Zaškrtněte možnosti, kde nabývá $x hodnoty true:
$x = (10 && 0)$x = ('false' || -1)$x = (5 === '5')$x = !!("NULL" || false)
(2,4)
Co vypíše následující kód
function addThree($x)
{
$x++;
return $x + 2;
}
function addTwo(&$x)
{
$x++;
return $x + 1;
}
$x = 1;
echo addThree(addTwo($x)) . $x;- 61
- 52
- 62
- 51
(3)
Která z podmínek je stejná jako ($a && !$b) || ($a && $b)
$a!!$b$a || !$b!$b && !!$a
(1)
Pokud máme $x = 'hello', co vypíše echo $x a co echo $$x
echo $xvypíše hello aecho $$xvyvolá chybu syntaxeecho $xvypíše hello aecho $$xvypíše adresu v paměti, protože$$xje referenceecho $xvypíše $x aecho $$xvypíše $$xecho $xvypíše hello aecho $$xvypíše obsah proměnné$hello
tohle ne
rozdil mezi tridou, abs tridou a interfacem, mnohonasobna dedicnost (4)
Kdy se zavolá na objektu konstruktor
- při deklaraci třídy nebo libovolného jejího potomka
- jenom při explicitním zavoláním z potomka pomocí
parent::__construct() - při vytvoření instance pokud konstruktor existuje
- při zavolání jakékoliv metody na instanci nebo potomcích
(3)
Co vypíše následující kód
class num {
public $val;
}
function addThree(num $n)
{
$n->val += 3;
return $n;
}
function addTwo(num &$n)
{
$n->val += 2 ;
return $n;
}
$n = new num();
$n->val = 1;
echo addThree(addTwo($n))->val . $n->val;- 61
- 51
- 62
- 66
(4)
Co bude výstupem tohoto kódu?
class WarningException extends Exception {};
try {
throw new WarningException();
echo 'OK';
} catch (Exception $e) {
echo 'Chyba';
} catch (WarningException $e) {
echo 'Varování';
}- OK
- Chyba
- Varování
- Kód je syntakticky špatně
(2)
Máme následující tabulky
user
| id | name | role |
|---|---|---|
| 1 | Adam | 2 |
| 2 | David | 3 |
| 3 | Filip | 2 |
| 4 | Ondřej | 1 |
role
| id | role |
|---|---|
| 1 | Admin |
| 2 | Manager |
| 3 | User |
| 4 | Guest |
Co vypíše následující dotaz:
SELECT u.id, u.name, r.role
FROM user u
JOIN role r ON u.role = r.id| id | name | role |
|---|---|---|
| 1 | Adam | 2 |
| 2 | David | 3 |
| 3 | Filip | 2 |
| 4 | Ondřej | 1 |
| id | name | role |
|---|---|---|
| 1 | Adam | Manager |
| 2 | David | User |
| 3 | Filip | Manager |
| 4 | Ondřej | Admin |
| id | name | role |
|---|---|---|
| 4 | Ondřej | Admin |
| 1 | Adam | Manager |
| 2 | David | User |
| null | null | Guest |
| id | name | role |
|---|---|---|
| 1 | Adam | Admin |
| 2 | David | Manager |
| 3 | Filip | User |
| 4 | Onřej | Guest |
tabulky vedle sebe
(2)
Máme následující tabulky
user
| id | name | role |
|---|---|---|
| 1 | Adam | 2 |
| 2 | David | 3 |
| 3 | Filip | 2 |
| 4 | Ondřej | 1 |
role
| id | role |
|---|---|
| 1 | Admin |
| 2 | Manager |
| 3 | User |
| 4 | Guest |
Co vypíše následující dotaz:
SELECT r.role, COUNT(1) as cnt
FROM role r
LEFT JOIN user u ON u.role = r.id
GROUP BY r.role| role | cnt |
|---|---|
| Admin | 1 |
| Manager | 2 |
| User | 3 |
| Guest | 4 |
| role | cnt |
|---|---|
| Admin | Ondřej |
| Manager | Adam, Filip |
| User | David |
| Guest |
| role | cnt |
|---|---|
| Admin | 1 |
| Manager | 2 |
| User | 1 |
| Guest | 0 |
| role | cnt |
|---|---|
| Admin | 1 |
| Manager | 2 |
| User | 1 |
(3)
Jaký návrhový vzor je nejčasťeji použít při implementaci připojení do databáze:
- Proxy
- Chain of Responsibility
- Factory
- Singleton
(4)
Který regulární vyraz vyhledá v následujícím textu jenom řádky, které obsahují informaci o neúspěšném dokončení importu (obsahuje slovo import fail).
[2018-01-01 10:20:31] (IS IMPORT) Init
[2018-01-01 10:20:31] (DWH IMPORT) Init
[2018-01-01 10:20:32] (DWH IMPORT) Import start
[2018-01-01 10:20:32] (IS IMPORT) Import start
[2018-01-01 10:20:32] (IS IMPORT) Loading of 3 items failed, skipping
[2018-01-01 10:20:32] (IS IMPORT) Loaded 201 items
>>> [2018-01-01 10:20:33] (DWH IMPORT) Import - failed
[2018-01-01 10:20:34] (IS IMPORT) 43 items converted
[2018-01-01 10:20:34] (IS IMPORT) Import finished successfully
[2018-01-01 10:20:35] (ODD IMPORT2) Init
[2018-01-01 10:20:37] (ODD IMPORT2) Import start
>>> [2018-01-01 10:20:39] (ODD IMPORT2) Import failed
[2018-01-01 10:23:37] (ODD EXPORT) Export start
[2018-01-01 10:23:39] (ODD EXPORT) Export failed
zvyraznit radky s failem
/import\) import (\- )?failed/i/IMPORT.*failed/i/IMPORT\).*\- failed/i/IMPORT\) Import failed/i
(1)
Doplňte kód tak, aby byl funkční
class A
{
private $x = 0;
private static $y = 0;
public static function incY($i}
{
//todo A
}
public function decX($d)
{
//todo B
}
}- A:
$this->y += $i;, B:$this->x -= $d; - A:
self->y += $i;, B:$this::$x -= $d; - A:
$this->$y += $i;, B:self::x -= $d; - A:
self::$y += $i;, B:$this->x -= $d;
(4)
Máme následující tabulky
user
| id | name | role |
|---|---|---|
| 1 | Adam | 2 |
| 2 | David | 3 |
| 3 | Filip | 2 |
| 4 | Ondřej | 1 |
role
| id | role |
|---|---|
| 1 | Admin |
| 2 | Manager |
| 3 | User |
| 4 | Guest |
Napište dotaz, aby výsledek z těchto dvou tabulek byl:
| role | cnt |
|---|---|
| Manager | Adam, Filip |