INDEVELOPMENTbeta






Subskrybuj m1chu.eu – another devblog
 
  •  m1chu: Gdyby ktoś miał kiedyś problem z nieprawidłową wielkością pobieranego pliku, chociażby w moich, wyżej...
  •  m1chu: Jeżeli chodzi o szybką konwersję z Flash na HTML to szczerze nie wiem. Nigdy nie potrzebowałem żadnej...
  •  m1chu: @Michal: wrzuć linki w jakieś kontenery (listę ul -> li, dl -> dt/dd, czy chociażby w divy). Ustaw ich...
  •  Józek: Wszystko pięknie opisane, ja mam małe pytanko. Od jakiegoś czasu staram się dowiedzieć jak zmienić...
  •  Michal: a co jesli chciałbym umiescic kilka takich linkow obok siebie ?jesli zmienie wartość display na inline...
  •  mano: Co należy zrobić aby podmiane przycisku zastasowac kilka razy na stronie z różnymi grafikami ? Trzeba...
  •  michauu: Ale na twojej stronce nie ma nifty corners:) http://www.html.it/articoli/ni fty/index.html

Dołącz do fanów!

Ankieta!

  • Jak oceniasz poziom artykułów? (dokładną opinię umieść w komentarzu)

    View Results

    Loading ... Loading ...




Zend PHP 5 Certification – Self Test – omówienie pytań…


Tak się składa, że zamierzam od drugiej części przyszłego miesiąca zmienić kilka rzeczy związanych z moimi zamiłowaniami do programowania. I właśnie jedną ze zmian ma być zapisanie się na certyfikat Zend’a, który to sugeruje aby przed podjęciem wyzwania egzaminacyjnego napisać wstępny, składający się z 8śmiu pytań test. Poziom jego zaawansowania jest ponoć zbliżony do normalnego egzaminu, dlatego jest on dobrym wyznacznikiem do sprawdzenia swojej osoby, czy nadaje się ona do podjęcia walki o otrzymanie tegoż certyfikatu. Jak wyglądają pytania z PHP5? Które odpowiedzi są poprawne i dlaczego? I jaki wynik uzyskałem? Jeśli chcecie poznać odpowiedzi na te pytania, czytajcie dalej :D

Po pierwsze należy wspomnieć, że cały test jest po angielsku, dlatego w takim języku podam pytania. Swoje umiejętności w nim możecie sprawdzić tutaj. Zanim zacznę rozwodzić się na temat jego rozwiązywania zalecam Wam podjęcie go przez doczytaniem tego wpisu do końca. Przecież nie chodzi tutaj o oszukiwanie samych siebie, a o sprawdzenie się – nikt z Was z tego rozliczać nie będzie.

  • Pytanie I. How can precisely one byte be read from a file, pointed by $fp?
    1. fseek($fp, 1)
    2. fgets($fp, 1)
    3. fgetss($fp, 1)
    4. fgetc($fp)
    5. All of the above

Pierwsza odpowiedź – fseek() powoduje przesunięcie wskaźnika na miejsce wyznaczone przez drugi parametr. Funkcje – fgets() i fgetss() pobierają ciąg znaków z pliku o długości podanym w drugim parametrze, z tymże druga z nich usuwa tagi HTML w locie. Dlatego poprawny jest 4 wybór.

  • Pytanie II. What object method specifies post-deserialization behavior for an object?
    1. __sleep()
    2. __wakeup()
    3. __set_state()
    4. __get()
    5. __autoload()

Trzy ostatnie metody magiczne możemy skreślić na wstępie. Mianowicie __get() ułatwia dostęp do elementów wewnątrz klasy, __autoload() zostaje wywołane automatycznie w wypadku próby zainicjowania klasy dotychczas niezdefiniowanej, no i ostatecznie najbardziej tajemnicze __set_state() wywoływane dla wyników wyeksportowanej instancji klasy poprzez var_export(). Zostają nam więc:

  • __sleep() – istnienie tej funkcji sprawdzane jest przed każdą serializacją wywoływaną funkcją serialize(),
  • __wakeup() – istnienie tej funkcji w klasie sprawdzane jest przed każdą deserializacją wywoływaną funkcją unserialize().

Wybór chyba jest już oczywisty.

  • Pytanie III. Where does the session extension store the session data by default?
    1. SQLite Database
    2. MySQL Database
    3. Shared Memory
    4. File System
    5. Session Server

Standardowo dane sesji przechowywane są w plikach. Nie mniej jednak za pomocą funkcji session_set_save_handler i jej parametrów możemy utworzyć odniesienia do nich umożliwiające przetrzymywanie danych sesji np. w bazie danych.

  • Pytanie IV. Which of the following data types cannot be directly manipulated by the client?
    1. Cookie Data
    2. Session Data
    3. Remote IP Address
    4. User Agent

Spośród tych czterech elementów tylko dane sesji przetrzymywane są po stronie serwera, także bez odpowiednio przygotowanego skryptu wykonywanego po stronie serwera nie ma możliwości dostępu do manipulacji tymi danymi. Nie mniej jednak nie jest to już dostęp bezpośredni.

  • Pytanie V. What is the difference between isset() and other is_*() functions (is_alpha(), is_number(), etc.)?
    1. isset() is a function call and is_*() are not function calls
    2. is_*() are language constructs and isset() is not a language construct
    3. isset() is a language construct and is_*() are not language constructs
    4. is_*() return a value whereas isset() does not

Odpowiedź trzecia jest poprawna, gdyż isset() jest konstrukcją językową, a pozostałe z wymienionych są funkcjami. Bardzo ładnie dla oka można to sprawdzić w bardziej zaawansowanych edytorach PHP, poprzez specyficzne podświetlanie konstrukcji językowych i nie podświetlanie funkcji języka PHP.

  • Pytanie VI. What will be the value of $b after running the following code?
  • $a = array('c', 'b', 'a');
    $b = (array) $a;
    1. TRUE
    2. array(‘c’, ‘b’, ‘a’)
    3. array(array(‘c’, ‘b’, ‘a’))
    4. None of the above

W drugiej linii następuje rzutowanie tablicy $a utworzonej linie wyżej na typ tablicy, po czym wynik przypisany jest do zmiennej (już tablicowej/tablicy) $b.

  • Pytanie VII. Which of the following function signatures is correct if you want to have classes automatically loaded?
    1. function autoload($class_name)
    2. function __autoload($class_name, $file)
    3. function __autoload($class_name)
    4. function _autoload($class_name)
    5. function autoload($class_name, $file)

Wszystkie metody magiczne w PHP5 rozpoczynają się od __. Więc wybór zaokrąglił się nam do drugiej i trzeciej odpowiedzi. A ponieważ posiada ona wg. dokumentacji tylko jeden parametr to należy wybrać trzecią odpowiedź.

  • Pytanie VIII. What is the best way to run PHP 4 and PHP 5 side-by-side on the same Apache server?
    1. Run one as an Apache module, the other as a CGI binary.
    2. Run both as a CGI binary.
    3. Just use .php4 for PHP 4, and .php for PHP 5.
    4. Use .php for both but use different document roots.

Przyznaję, że w tym wypadku dwie odpowiedzi – drugą i czwartą skreśliłem ze względu, moim zdaniem na brak logiki. Pierwsze co mi się rzuciło to opcja realna ze strony klienta – czyli trzecia. Nie mniej jednak te „to run” w pytaniu pokwapiło mnie do wniosku, że należy do tego podejść z innej, bardziej technicznej strony. A ponieważ da się dwie wersje PHP uruchomić w trybie jedna jako skrypt CGI, a druga jako moduł Apache’a (dopiero po tym, należałoby skupić na parsowaniu dokumentów PHP w danej wersji zależnej od rozszerzenia) to pierwsza odpowiedź jest dobra. Ale zamieszałem :D I, żeby nie być gołosłownym, że niby nie rozwiązałem sam, proszę (strzelajcie w którym pytaniu się walnąłem ;]):

Zend Self-Test

Mam nadzieję, że komuś się przydadzą te odpowiedzi, rzecz jasna do sprawdzenia siebie samego. Jeśli coś przypadkiem pomyliłem, proszę o uwagi w komentarzach.

I na koniec pytanie – czy ktoś miał z bardziej praktycznej strony kontakt z Zend Certificate i mógłby mi na tyle na ile umowa pozwala przybliżyć jak to wszystko działa (w komentarzach)? Z góry dzięki.


8 komentarzy

  • gravatar
    1. dziki ()

    W moim przypadku – laika – winik byl imponujący ;] 1 of 8 :)

    Oby tak dalej m1chu :)
    Pzdr, dziki!

  • gravatar
    2. m1chu ()

    Które zrobiłeś dobrze? Wiesz? :>

    Po za tym nieważne na ile się czujesz, ale co robisz w tym zakresie żeby być lepszym. Nie martw się – ja niekiedy jak widzę co ludzie za czary odprawiają w programowaniu to też załamuje ręce, przykład? Np. ta proceduralnie pisana gra. Wszystkiego da się nauczyć, ba pewnie nawet pewnie gdyby zebrać grupkę osób dałoby się to zrobić teraz. Ale ile trzeba mieć zapału do tego :D

  • gravatar
    3. baael ()

    może nie jestem laikiem ale 8/8 za pierwszym strzałem, ale coś łatwe te pytania…

  • gravatar
    4. m1chu ()

    Nie powiedziałbym, że pytania były łatwe (co nie znaczy, że były trudne w całej ich formie) ;] Przynajmniej nie wszystkie, mała część była podchwytliwa (co z resztą w opisałem) – no chyba, że po przeczytaniu odpowiedzi – które sporządziłem :D

  • gravatar
    5. baael ()

    także postanowiłem wziąść się za ten certyfikat, tak się składa że już wcześniej go zrobiłem i za pierwszym razem miałem full, ale to naprawdę nie kwestia jakiejś manualowej wiedzy. te pytania są dosyć proste jeśli używałeś tych mechanizmów. jedyne przy czym się zastanowiłem to pytanie o php4 i php5 na jednym serwerze, ale i tu jest logicznie dość prosto , bo jeśli miałeś styczność z uruchamianiem w ten sposób – a mi się tak trafiło – to wiesz że w jakiś sposób wszystkie odpowiedzi mogą być prawdziwe, ale poza pierwszą niekoniecznie, ta pierwsza to to do czego pozostałe się sprowadzają.

    do całej reszty wystarczy wiedza czerpana z praktyki, np. próbując pracować z mechanizmem sesji i tworząc własny, wiesz że sesje są trzymane jako pliki – w końcu przerabiasz je na bazodanowe. gdy serializujesz klasy w sesji, __wakeup jest bardzo pomocne, isset i (array) na logikę banalne. nie widze tutaj nic podchwytliwego poza ostatnim, które rzeczywiście może zmylić.

    jednak jestem pewien że sam egzamin nas zaskoczy dlatego teraz do nauki :)

    życzę powodzenia! i trzymam kciuki, a stronkę dodaje do ulubionych.

    pozdrawiam

  • gravatar
    6. m1chu ()

    Przyznaję, że największą wątpliwość miałem też przy ostatnim pytaniu.

    Co do samego certyfikatu, z tego co wiem w momencie kiedy obowiązywało na nim PHP4 to jego zdanie opierało się na „wyryciu” teorii. Ponoć się to zmieniło, mam taką nadzieje. Przynajmniej, że tak będzie do końca aktualnej sesji studenckiej – bo wtedy mam zamiar się zapisać. Choć pewnie i tak niejedno, tak jak napisałeś nas tam zaskoczy :D

    Bardzo mi miło, że dodałeś moją stronę do ulubionych. Postaram się nie wypisywać za dużych bzdur haha :]

    Miłego wieczoru życzę.

  • gravatar
    7. Tajemniczy ()

    7/8 – walnąłem się w ostatnim
    m1chu – mógłbyś mi przybliżyć trochę, jak taki certyfikat otrzymać?
    Trzeba rozwiązać test – ok. Trzeba się wczesniej zapisać? Co ile taki test jest przeprowadzany? Jest to test internetowy czy organizowany w ‘realu’ ?

  • gravatar
    8. m1chu ()

    Najpierw zakupujesz voucher upoważniający Cię, do roku od momentu zakupu do podejścia do egzaminu z Zenda. Voucher możesz zakupić na stronie Zenda, bądź w Polskim autoryzowanym dystrybutorze produktów tej firmy np. tutaj. Od tego czasu masz jak już wspomniałem do roku czas na przygotowanie się i zapisanie na stronie (po założeniu konta na zend.com) w sobie najodpowiedniejszym miejscu do podejścia do egzaminu. Egzamin odbywa się w takowej placówce, z tego co wiem trwa 90 minut i jest 70 pytań – wszystko po angielsku. Z praktyki? Nie powiem Ci, bo aktualnie mam zakupiony voucher i czekam na dogodną okazję do podejścia do zaliczenia certyfikatu.

    PS: sorry, że tak późno ale wyjechałem ;] Skutki wyjazdu mogą być widoczny w braku ładu w powyższym tekście haha :D

Dodaj własny komentarz

Możesz użyć następujących tagów XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>