Certyfikat ZendPHP

Ćwiczenia

Ten rozdział dotyczy tylko pytań. Wszystkie te pytania mają pomóc w zidentyfikowaniu obszarów, które należy przejrzeć. Egzamin obejmuje pytania, które są bardzo szczegółowe i musisz upewnić się, że znasz powszechnie używane funkcje. Nie pogrupowałem pytań według rozdziałów. Prawdziwy egzamin ma pytania, które koncentrują się na wiedzy z wielu obszarów programu nauczania.

P1: Co się stanie po uruchomieniu tego kodu?

< ?php
class CustomException { }
throw new CustomException('Error!');

*****

Wystąpi błąd krytyczny, ponieważ wyjątek nie zostanie wyłapany
Podczas próby wyrzucenia wyjątku wystąpi błąd krytyczny
Skrypt będzie działał bez żadnych danych wyjściowych, ponieważ nie używasz getMessage () w wyjątku
Żadne z powyższych

P2: Co wygeneruje ten skrypt?

< ?php
function addOne($arg) {
$arg++;
}
$a = 0;
addOne(&$a);
echo $a;

*****

Błąd składni; w ogóle nie będzie działać
To zależy od używanej wersji PHP
Błąd krytyczny
1

P3: Jakie będą wyniki tego skryptu?

< ?php
$a = function($a) {
return is_callable($a);
};
$b = function($b) use ($a) {
return $a($b);
};
echo $b($a) ? 'True' : 'False';

*****

Błąd składni; nie będzie działać
Prawda
Fałsz
Żadne z powyższych

P4: Jakie są wyniki tego skryptu?

< ?php
$a = 3;
echo $a >> 1;
*****

Błąd składni
0
1
2
9

P5: Zalecane ustawienie produkcyjne dla ustawienia konfiguracji display_error to On.

*****

True
False

P6: Funkcja session_generate_id() służy do tworzenia identyfikatora sesji i powinna być wywoływana, gdy osoba loguje się, aby złagodzić ataki utrwalania sesji.

*****

True
False

P7: Kiedy wywołasz funkcję json_encode na obiekcie, aby go serializować, jaką magiczną metodę wywoła PHP?

*****

__sleep
__wake
__get
__clone
Żadna z nich

P8: Co wygeneruje ten skrypt?

< ?php
$emptyArray = [];
$encode = json_encode($emptyArray, JSON_FORCE_OBJECT);
$decode = json_decode($encode);
echo gettype($decode);

*****

Błąd składni; w ogóle nie będzie działać
tablicę
obiekt
ciąg znaków
Żadne z powyższych

P9: Jakie są wyniki następującego skryptu?

< ?php
$arr1 = [1,2,3];
$arr2 = array("1" ⇒> 2, 0 ⇒ "1", 2 ⇒ 3 );
$equal = $arr1 == $arr2 ? 'Equal' : 'Not Equal';
$identical = $arr1 === $arr2 ? 'Identical' : 'Not Identical';
echo "The arrays are [$equal] and [$identical]";

*****

Błąd składni; to nie zadziała
Tablice [Equal] i [Identical]
Tablice to [Equal] i [Not identical]
Tablice to [Not Equal] i [Not identical]
Tablice to [Not Equal] i [Identical]
Żadne z powyższych

P10: Jaki będzie wynik tej funkcji?

< ?php
$number = 1234.5678;
echo number_format($number, 2, ',', '.') . PHP_EOL;

*****

1,235
1 233,568
1,234,57
Żadne z powyższych

P11: Powinieneś uciec ciągom znaków przed przekazaniem ich do bazy danych za pomocą funkcji addlashes(), aby nie można było użyć ataku wstrzykiwania SQL na twoją stronę.

*****

True
False

P12: Jakie są wyniki tego kodu?

< ?php
class A
{
public $name = '0';
private $surname = '0';
public function __isset($property)
{
return true;
}
}
$a = new A;
$empty = empty($a->name);
$set = isset($a->surname);
if ($empty === $set) {
echo "Yes";
} else {
echo "No";
}

*****

Yes
No
Błąd składni; to nie uruchomi się

P13: Jeśli nie określisz modyfikatora widoczności, PHP domyślnie wybiera prywatny, aby twój kod był bezpieczny.

*****

True
False

P14: Możesz użyć funkcji _____________, aby upewnić się, że zmienna nadaje się do wyświetlania i nie zawiera żadnych spacji.

*****

ctype_alpha
ctype_print
ctype_graph
filter_var

P15: Co wygeneruje ten kod?

< ?php
function bird($message) {
function nest($string) {
echo $string;
}
nest($message);
}
bird('hello');
echo " ";
nest('world');

*****

Błąd składni; nie uruchomi się
Nigdy się nie skończy
Wygeneruje błąd, ponieważ funkcja nest() nie istnieje w zasięgu globalnym
hello world
Żadne z powyższych

P16: Co wygeneruje kod?

< ?php
$a = 0;
$b = $a ++;
$a = $a + 1;
echo - $a;

*****

Wystąpi błąd
0
1
2

P17: Możesz użyć funkcji ________________, aby upewnić się, że plik został faktycznie przesłany i że nie jest innym plikiem w systemie operacyjnym.

*****

check_file_uploaded()
finfo_file()
is_uploaded_file()
Żadne z powyższych

P18: Jakie są wyniki tego kodu PHP?

< ?php
echo (isset($a)) ? "A is set" : "A is not set";
echo " and ";
echo (empty($b)) ? "B is not set" : "B is set";

*****

Błąd składni
A nie jest ustawione, i B jest ustawione
A nie jest ustawione, i B nie jest ustawione
A jest ustawione, i B jest ustawione
Zostanie wygenerowane ostrzeżenie, które wyświetli "A nie jest ustawione, a B nie jest ustawione"
Będzie miał krytyczny błąd informujący, że nie znaleziono zmiennej

P19: Zarówno PUT, jak i POST są idempotentne.

*****

Prawda
Fałszywy; POST jest idempotentny, ale PUT nie
Fałsz; PUT jest idempotentny, ale POST nie
Fałsz; żadne z nich nie jest idempotentne
Fałsz; REST jest bezpaństwowy, więc nic nie jest idempotentne

P20: Możesz utworzyć instancję klasy przed jej zdefiniowaniem, jak w tym przykładzie?:

< ?php
$ foo = new ExampleClass ();
echo $ foo;
klasa ExampleClass {}

*****

Prawda
Fałsz

P21: Jeśli nie używasz przygotowanych instrukcji i chcesz uniknąć znaków podczas korzystania z bazy danych MySQL, możesz użyć funkcji _____________.

*****

mysql_real_escape_string()
real_escape_string()
mysqli_real_escape_string()
addslashes()
mysqli_escape_string()
Żadne z powyższych

P22: Co wygeneruje ten skrypt?

< ?php
$a = "foo";
$$a = "bar";
$a = "Hello world";
echo ${"foo"};
*****

Błąd składni; to nie uruchomi się
foo
bar
Hello world

P23: Biorąc pod uwagę następujący kod, jaki będzie wynik?

< ?php
$a = "0.0";
$b = (int)$a;
if ( (boolean)$a === (bool)$b) {
echo "True";
} else {
echo "False";
}

*****

Błąd składni; to nie uruchomi się
Prawda
Fałsz

P24: Co wygeneruje ten skrypt?

echo "Apples"<=>"bananas" ? 'foo' : 'bar';

*****

foo
bar
Żaden z powyższych

P25: To podchwytliwe pytanie, więc przejrzyj je ostrożnie i przewiduj wyjście kodu. Pamiętaj, że drugi parametr md5() powoduje, że skrót jest zwracany w formacie binarnym RAW zamiast w postaci ciągu szesnastkowego.

< ?php
namespace A;
function md5($value) {
return \md5($value . ' Extra saltiness');
}
echo strlen(md5('Hi', true));
*****

Błąd składni ; to nie uruchomi się

16
32
Powoduje to błąd, ponieważ nie można zdefiniować funkcji o takiej samej nazwie jak nazwa funkcji PHP
Żadne z powyższych

P26: Który z poniższych rodzajów błędów uniemożliwi wykonywanie skryptu?

*****

Notice
Warning
Syntax error
Fatal error

P27: Jakie są wyniki tego skryptu?


*****

bool(true)
bool(false)

P28: Jeśli chcesz, aby PHP wyświetlał wszystkie błędy oprócz powiadomień, jakiego ustawienia w php.ini byś użył?

*****

error_reporting= -E_NOTICE
error_reporting=E_ALL - E_NOTICE
error_reporting= ~E_NOTICE
error_reporting= E_ALL & ~E_NOTICE

P29: Metody prywatne są dostępne tylko dla klasy, w której są zdefiniowane, więc ten kod wyświetli pustą tablicę.

< ?php
class Mirror {
private function showMeGorgeous($me) {
echo $me;
}
}
$refObj = new ReflectionClass('Mirror');
print_r($refObj->getMethods());

*****

True
False

P30: Załóżmy, że uruchamiasz ten skrypt z wiersza poleceń, a nie w przeglądarce internetowej. Jakie będzie wyjście?

< ?php
class SetMissing {
public function __set($name, $value) {
$this→$name = filter_var($value, FILTER_SANITIZE_STRING);
}
}
$obj = new SetMissing();
$obj→example = "< strong >hello< /strong > ";
echo $obj->example . PHP_EOL;
$obj→example = "< strong >hello< /strong >";
echo $obj→example;
*****

hello
< strong >hello< /strong >
< strong >hello< /strong >
< strong >hello< /strong >
hello
hello
Żadne z powyższych

P31: Jeśli implementujesz funkcję __sleep (), musisz upewnić się, że zwraca tablicę asocjacyjną zawierającą nazwy i wartości zmiennych instancji, które chcesz serializować.

*****

True
False
P32: Jakie będą wyniki tego kodu?

< ?php
trait Dog {
public function makeNoise() {
echo "Woof";
}
public function wantWalkies() {
echo "Yes please!";
}
}
trait Cat {
public function makeNoise() {
echo "Purr";
}
public function wantWalkies() {
echo "No thanks!";
}
}
class DomesticPet
{
use Dog, Cat {
Cat::makeNoise insteadof Dog;
Cat::wantWalkies as kittyWalk;
Dog::wantWalkies insteadof Cat;
}
}
$obj = new DomesticPet();
$obj-rarr;kittyWalk();

*****

Yes please!
No thanks!
Woof
Purr
Żadne z powyższych

P33: Jakie są wyniki tego kodu?

< ?php
class A
{
public $name = '0';
private $surname = '0';
public function __isset($property)
{
return true; }
}
$a = new A;
$empty = empty($a→name);
$set = isset($a→surname);
if ($empty === $set) {
echo "Yes";
} else {
echo "No";
}

*****

Błąd składni; to nie uruchomi się
Yes
No
Błąd krytyczny

P34: Czy w kluczach PHP rozróżniana jest wielkość liter? Jakie będą wyniki tego skryptu?

< ?php
$arr1 = ["A" => "apple", "B" => "banana"];
$arr2 = ["a" => "aardvark", "b" => "baboon"];
echo count($arr1 + $arr2);

*****

Nie rozróżniają wielkości liter; to da wynik 2
Rozróżniają wielkość liter; to da wynik 4
Klucze PHP są konwertowane na liczby całkowite; to daje wynik 2
Żadne z powyższych

P35: Co wygeneruje ten skrypt?

< ?php
$a = "0";
$c = $b = empty($a);
$d = ++$b + $a;
echo $d;

*****

0
1
2
Błąd składni; nie możesz przypisać dwóch zmiennych w jednym wierszu
Żadne z powyższych

P36: Co wygeneruje ten kod?

< ?php
$a = 1.23;
$b = 4.56;
$c = (int)$a + (int)$b;
echo (double)$c;

*****

5
6
5,79
Żadne z powyższych

P37: Co wygeneruje ten skrypt?

< ?php
$arr = ["one", "two", 1.5 ⇒ "three"];
echo $arr[1];
*****

one
two
three
Żadne z nich

P38: Interfejsy mogą określać tylko metody publiczne, ale twoja klasa może je wdrażać w dowolny sposób.

*****

True
False

P39: Możesz wymusić umieszczanie sesji wyłącznie w plikach cookie, używając ustawienia konfiguracji _____________.

*****

session.cookie_secure
session.use_cookies
session.use_trans_sid
Żadne z powyższych

P40: Jakie są wyniki tego kodu?

< ?php
define('PI', 3.14159625);
define('_PI', "3.1459625");
$radius = 10;
if (PI == _PI) {
$area = (int)PI * $radius ** 2;
echo $area;
} else {
echo "Indiana";
}

*****

Indiana
300
900
986.962699801
400
1600

P41: Jaka są dane wyjściowe tego skryptu?

< ?php
function HelloWorld() {
echo HELLO;
}
const HELLO = "Hello World!";
HelloWorld();

*****

Syntax Error
Hello World!
PHP Notice: Use of undefined constant HELLO
Żadne z powyższych

P42: Co wygeneruje ten kod?

< ?php
function add(int $a, int $b): integer {
return $a + $b;
}
echo add(5.7, -4.6);

*****

Błąd składni
1
1.1
Żadne z powyższych

P43: Jakie są dane wyjściowe tego skryptu?

< ?php
$a = 0b0010;
$b = 0b0001;
echo gettype($a & $b);
*****

Błąd składni; to nie uruchomi się
nieokreślony
integer
double
boolean

P44: Jaki będzie wynik tego kodu?

< ?php
$result = echo print("Hello world!");
var_dump($result);

*****

NULL
1NULL
Hello world!NULL
Błąd składniowy

P45: Wywołałeś PHP w wierszu poleceń i chcesz uzyskać dostęp do argumentów przekazanych w skrypcie PHP. Który superglobal będzie je zawierał?

$GLOBALS
$_ARGV
$_SERVER
$_ARGUMENTS

P46: Która z poniższych funkcji jest używana do funkcji gc_collect_cycles ()?

Nie ma takiej funkcji
Wstrzymaj skrypt na określoną liczbę cykli procesora
Zainicjuj wyrzucanie elementów bezużytecznych, aby zwolnić pamięć
Opróżnij pamięć podręczną opcode

P47: Co wygeneruje ten kod?

< ?php
try {
// generuje błąd powiadomienia (nie prechwycony)
echo $thisVariableIsNotSet;
} catch (Error $e) {
echo "Error caught";
}

*****

Powoduje to błąd powiadomienia
To powoduje błąd krytyczny
Wystąpił błąd
Żadne z powyższych

P48: Co wygeneruje ten kod?

< ?php
$emotion = "loves";
$theBeeb = function($name) use ($emotion) {
echo "$name $emotion Justin";
};
$emotion = "adores";
$theBeeb("Ron");

*****

Ron loves Justin
Ron adores Justin
$name $emotion Justin
Żadne z powyższych

P49: Załóż, że obie klasy Pluto i Grumpy są zadeklarowane w class. definition.php, który znajduje się w tym samym katalogu co ten skrypt. Co się stanie po uruchomieniu tego skryptu?

< ?php
$a = function() {
include('class.definitions.php');
};
spl_autoload_register($a);
// Class Pluto is defined in class.definitions.php
$planet = new Pluto;
// Class Grumpy is defined in class.definitions.php
$dwarf = new Grumpy;

*****

Skrypt wygeneruje błąd krytyczny, ponieważ musisz wstawić nawiasy po nazwie klasy
Skrypt wygeneruje błąd przy próbie dołączenia skryptu po raz drugi
Plik zostanie dołączony jeden raz, a skrypt nic nie wyświetli
Skrypt się nie powiedzie, ponieważ nie można użyć zmiennej dla spl_autoload_register; tylko dosłowny ciąg znaków
Żadne z powyższych

P50: Których z poniższych informacji związanych z żądaniem klient nie może łatwo zmienić?

*****

Zdalny adres IP
Dane sesji
Dane dotyczące plików cookie
Agent użytkownika
Wszystkie te są łatwo zmieniane przez klienta

ODPOWIEDZI



•  Wystąpi błąd krytyczny, ponieważ wyjątek nie zostanie wyłapany

•  Błąd składni; w ogóle nie będzie działać

•  True

•  1

•  False

•  False

•  Żaden z nich

•  obiekt

•  Tablice to [Equal] i [Not identical]

•  1,234,57

•  False

•  Yes

•  False

•  ctype_graph

•  hello world

•  1

•  is_uploaded_file()

•  A nie jest ustawione, 1 B nie jest ustawione


•  Fałsz; PUT jest idempotentny, ale POST nie

•  True

•  mysqli_real_escape_string()

•  bar

•  False

•  Żaden z powyższych

•  32

•  Syntax error

•  bool(false)

•  error_reporting= E_ALL & ˜E_NOTICE

•  False

•  hello
< strong >hello< /strong >

•  False

•  No thanks!

•  Yes

•  4

•  1

•  5

•  three

•  False

•  Żadne z powyższych

•  Indiana

•  Hello World!

•  Błąd składni

•  integer

• Błąd składniowy

•  $_SERVER

• Zainicjuj wyrzucanie elementów bezużytecznych, aby zwolnić pamięć

•  Błąd powiadomienia

•  Ron loves Justin

• Plik zostanie dołączony jeden raz, a skrypt nic nie wyświetli

•  Dane sesji