Top 100 otázek a odpovědí na rozhovory v PHP (PDF)

Zde jsou otázky a odpovědi na PHP rozhovory pro čerstvější i zkušené kandidáty, aby získali svou vysněnou práci.

 

PHP otázky k pohovoru pro osvěžovače


1) Co je to PHP?

PHP je webový jazyk založený na skriptech, které umožňují vývojářům dynamicky vytvářet generované webové stránky.


2) Co znamenají iniciály PHP?

PHP je zkratka pro Hypertext Pre-processor.

👉 Zdarma ke stažení PDF: Otázky a odpovědi na rozhovor s PHP


3) Který programovací jazyk se podobá PHP?

Syntaxe PHP se podobá Perlu a C


4) Co znamená HRUŠKA?

PEAR znamená „PHP Extension and Application Repository“. Rozšiřuje PHP a poskytuje vyšší úroveň programování pro webové vývojáře.


5) Jaká je vlastně používaná verze PHP?

Verze 7.1 nebo 7.2 je doporučená verze PHP.


6) Jak spustíte PHP skript z příkazového řádku?

Stačí použít rozhraní příkazového řádku PHP (CLI) a zadat název souboru skriptu, který se má spustit, následovně:
php script.php


7) Jak spustit interaktivní PHP shell z rozhraní příkazového řádku?

Stačí použít program PHP CLI s volbou -a následovně:
php -a


8) Jaký je správný a dva nejčastější způsoby, jak začít a ukončit blok kódu PHP?

Dva nejběžnější způsoby, jak spustit a dokončit PHP skript, jsou:

 <?php [   ---  PHP code---- ] ?> and <? [---  PHP code  ---] ?>

9) Jak můžeme zobrazit výstup přímo do prohlížeče?

Abychom mohli zobrazit výstup přímo do prohlížeče, musíme použít speciální značky .


10) Jaký je hlavní rozdíl mezi PHP 4 a PHP 5?

PHP 5 představuje mnoho dalších OOP (Objektově orientované programování) funkce.


11) Je v PHP podporováno vícenásobné dědění?

PHP podporuje pouze jednu dědičnost; to znamená, že třídu lze rozšířit pouze z jedné jediné třídy pomocí klíčového slova 'extended'.


12) Co znamená závěrečná třída a závěrečná metoda?

'final' je zavedeno v PHP5. Final class znamená, že tuto třídu nelze rozšířit a finální metodu nelze přepsat.


13) Jak probíhá porovnávání objektů v PHP?

Operátor '==' používáme k testování, zda jsou dva objekty instancí ze stejné třídy a mají stejné atributy a stejné hodnoty. Můžeme otestovat, zda dva objekty odkazují na stejnou instanci stejné třídy pomocí operátoru identity '==='.


14) Jak mohou PHP a HTML interagovat?

HTML je možné generovat pomocí PHP skriptů a je možné předávat informace z HTML do PHP.


15) Jaký typ operace je potřeba při předávání hodnot přes formulář nebo URL?

Pokud bychom chtěli předávat hodnoty přes formulář nebo URL, pak je musíme zakódovat a dekódovat pomocí htmlspecialchars() a urlencode().


16) Jak může PHP a Javascript interagovat?

PHP a Javascript nemůže přímo interagovat, protože PHP je jazyk na straně serveru a Javascript je jazyk na straně klienta. Můžeme si však vyměňovat proměnné, protože PHP umí generovat Javascript kód, který má prohlížeč spustit, a je možné předat konkrétní proměnné zpět do PHP přes URL.


17) Co je potřeba k tomu, abyste mohli používat funkci obrazu?

Knihovna GD je potřebná k provádění obrazových funkcí.


18) K čemu slouží funkce 'imagetypes()'?

imagetypes() poskytuje formát a typy obrázků podporované aktuální verzí GD-PHP.


19) Jaké funkce lze použít k získání vlastností obrázku (velikost, šířka a výška)?

Jedno funkce jsou getimagesize() pro velikost, imagesx() pro šířku a imagesy() pro výšku.


20) Jak se řeší selhání při provádění pomocí funkcí include() a require()?

Pokud je funkce require() nemůže získat přístup k souboru, pak to skončí fatální chybou. Nicméně, include() funkce zobrazí varování a skript PHP pokračuje v provádění.


21) Jaký je hlavní rozdíl mezi require() a require_once()?

require(), a require_once() provést stejný úkol s tím rozdílem, že druhá funkce před jeho spuštěním zkontroluje, zda je skript PHP již zahrnut nebo ne.

(stejné pro include_once() a include())


22) Jak mohu zobrazit text pomocí skriptu PHP?

Jsou možné dva způsoby:

<!--?php echo "Method 1"; print "Method 2"; ?-->

23) Jak můžeme pomocí PHP zobrazit informace o proměnné a čitelné pro člověka?

Abychom mohli zobrazit výsledek čitelný pro člověka, používáme print_r().


24) Jak je možné nastavit nekonečnou dobu provádění PHP skriptu?

Set_time_limit(0) přidaný na začátek skriptu nastaví nekonečnou dobu provádění, aby nedošlo k chybě PHP 'překročena maximální doba provádění.' To je také možné specifikovat v souboru php.ini.


Otázky a odpovědi na pohovor PHP pro zkušené

25) Co znamená chyba PHP 'Parse error in PHP – neočekávaná T_variable na řádku x'?

Toto je chyba syntaxe PHP vyjadřující, že chyba na řádku x přestane analyzovat a spouštět program.


26) Co bychom měli udělat, abychom mohli exportovat data do souboru Excel?

Nejběžnějším a nejpoužívanějším způsobem je získat data do formátu podporovaného aplikací Excel. Například je možné napsat .csv soubor, zvolit např. čárku jako oddělovač mezi poli a poté soubor otevřít pomocí Excelu.


27) K čemu je užitečná funkce file_get_contents()?

file_get_contents() umožňuje čtení souboru a jeho uložení do proměnné typu string.


28) Jak se můžeme připojit k a MySQL databáze z PHP skriptu?

Abyste se mohli připojit k a MySQL databáze, musíme použít funkci mysqli_connect() následovně:

<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->

29) K čemu je užitečná funkce mysql_pconnect()?

mysql_pconnect() zajistit trvalé připojení k databázi, to znamená, že se připojení neuzavře, když skončí PHP skript.

Tato funkce není podporována v PHP 7.0 a vyšší


30) Jak se zachází s výslednou sadou Mysql v PHP?

Sadu výsledků lze zpracovat pomocí mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object nebo mysqli_fetch_row.


31) Jak je možné znát počet vrácených řádků ve výsledné sadě?

Funkce mysqli_num_rows() vrátí počet řádků v sadě výsledků.


32) Která funkce nám udává počet položek ovlivněných dotazem?

mysqli_affected_rows() vrátí počet položek ovlivněných dotazem SQL.


33) Jaký je rozdíl mezi mysqli_fetch_object() a mysqli_fetch_array()?

Jedno mysqli_fetch_object() funkce shromažďuje první jediný odpovídající záznam, kde mysqli_fetch_array() shromažďuje všechny odpovídající záznamy z tabulky do pole.


34) Jak se dostaneme k datům zasílaným přes URL metodou GET?

Pro přístup k datům odeslaným pomocí metody GET používáme pole $_GET takto:

www.url.com?var=value
$variable = $_GET["var"]; this will now contain 'value'

35) Jak se můžeme dostat k datům zasílaným přes URL metodou POST?

Pro přístup k takto odeslaným datům použijte pole $_POST.

Představte si, že máte ve formuláři pole formuláře s názvem „var“, když uživatel klikne na odeslání do formuláře příspěvku, k hodnotě pak můžete přistupovat takto:

$_POST["var"];

36) Jak můžeme zkontrolovat, zda je hodnota dané proměnné číslo?

Je možné použít vyhrazenou funkci is_numeric() pro kontrolu, zda se jedná o číslo nebo ne.


37) Jak můžeme zkontrolovat, zda je hodnota dané proměnné alfanumerická?

Je možné použít vyhrazenou funkci ctype_alnum pro kontrolu, zda se jedná o alfanumerickou hodnotu nebo ne.


38) Jak zkontroluji, zda je daná proměnná prázdná?

Pokud chceme zkontrolovat, zda má proměnná hodnotu nebo ne, je možné použít funkci empty().


39) Co znamená funkce unlink()?

Funkce unlink() je vyhrazena pro práci se souborovým systémem. Jednoduše smaže soubor zadaný jako záznam.


40) Co znamená funkce unset()?

Funkce unset() je určena pro správu proměnných. Proměnná bude nedefinovaná.


41) Jak mohu uniknout datům před jejich uložením do databáze?

Funkce addlashes nám umožňuje uniknout datům před uložením do databáze.


42) Jak je možné odstranit znaky escape z řetězce?

Funkce stripslashes nám umožňuje odstranit znaky escape před apostrofy v a šňůra.


43) Jak můžeme automaticky uniknout příchozím datům?

V konfiguračním souboru PHP musíme povolit položku Magic quotes.


44) Co znamená funkce get_magic_quotes_gpc()?

Funkce get_magic_quotes_gpc() nám říká, zda jsou magické uvozovky zapnuté nebo ne.


45) Je možné odstranit HTML tagy z dat?

Funkce strip_tags() nám umožňuje vyčistit řetězec z HTML značek.


46) k čemu je statická proměnná ve funkci užitečná?

Statická proměnná je definována ve funkci pouze poprvé a její hodnotu lze během volání funkcí upravit následovně:

<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction();        //1 testFunction();        //2 testFunction();        //3 ?-->

47) Jak můžeme definovat proměnnou přístupnou ve funkcích PHP skriptu?

Tato funkce je možná pomocí globálního klíčového slova.


48) Jak je možné vrátit hodnotu z funkce?

Funkce vrací hodnotu pomocí instrukce 'return $value;'.


49) Jaká je nejpohodlnější hašovací metoda, kterou lze použít k hašování hesel?

Je vhodnější použít crypt(), který nativně podporuje několik hashovacích algoritmů, nebo funkci hash(), která podporuje více variant než crypt(), než používat běžné hashovací algoritmy jako md5, sha1 nebo sha256, protože jsou koncipovány jako rychlé. Hašování hesel pomocí těchto algoritmů tedy může způsobit zranitelnost.


50) Které kryptografické rozšíření zajišťuje generování a ověřování digitálních podpisů?

PHP-OpenSSL rozšíření poskytuje několik kryptografických operací včetně generování a ověřování digitálních podpisů.


Otázky k pohovoru PHP pro 5 let zkušeností

51) Jak je definována konstanta v PHP skriptu?

Direktiva define() nám umožňuje definovat konstantu takto:

define ("ACONSTANT", 123);

52) Jak můžete předat proměnnou odkazem?

Abychom mohli předat proměnnou odkazem, použijeme před ní znak ampersand takto $var1 = &$var2


53) Bude v PHP fungovat srovnání celého čísla 12 a řetězce „13“?

„13“ a 12 lze v PHP porovnat, protože vše přetypuje na typ celé číslo.


54) Jak je možné přetypovat typy v PHP?

Název výstupního typu musí být uveden v závorkách před proměnnou, která má být přetypována následovně:

* (int), (integer) – přetypování na celé číslo

* (bool), (boolean) – přetypování na boolean

* (plovoucí), (dvojitý), (skutečný) – obsazení do plováku

* (struna) – obsazení na strunu

* (pole) – přetypování do pole

* (objekt) – obsazení do objektu


55) Kdy je podmíněný příkaz ukončen endif?

Když po původním if následovalo: a poté blok kódu bez složených závorek.


56) Jak se v PHP používá ternární podmíněný operátor?

Skládá se ze tří výrazů: podmínky a dvou operandů popisujících, jaká instrukce by měla být provedena, když je zadaná podmínka pravdivá nebo nepravdivá, a to následovně:

Expression_1?Expression_2 : Expression_3;

57) K čemu slouží funkce func_num_args()?

Funkce func_num_args() se používá k zadání počtu parametrů předávaných funkci.


58) Pokud je proměnná $var1 nastavena na 10 a $var2 je nastavena na znak var1, jaká je hodnota $$var2?

$$var2 obsahuje hodnotu 10.


59) Co znamená přístup do třídy přes ::?

:: se používá pro přístup ke statickým metodám, které nevyžadují inicializaci objektu.


60) V PHP jsou objekty předávány hodnotou nebo odkazem?

V PHP jsou objekty předávány odkazem.


61) Jsou nadřazené konstruktory volány implicitně uvnitř konstruktoru třídy?

Ne, nadřazený konstruktor musí být volán explicitně takto:

parent::constructor($value)

62) Jaký je rozdíl mezi __spánkem a __probuzením?

__sleep vrátí pole všech proměnných, které je třeba uložit, zatímco __wakeup je načte.


63) Co je rychlejší?

1- Kombinace dvou proměnných takto:

$variable1 = 'Hello ';

$variable2 = 'World';

$variable3 = $variable1.$variable2;

Or

2- $variable3 = "$variable1$variable2";

$variable3 bude obsahovat „Hello World“. První kód je rychlejší než druhý kód, zejména pro velké velké sady dat.


64) jaká je definice relace?

Relace je logický objekt, který nám umožňuje uchovat dočasná data na více stránkách PHP.


65) Jak zahájit relaci v PHP?

Použití funkce session_start() nám umožňuje aktivovat relaci.


66) Jak můžete propagovat ID relace?

ID relace můžete šířit pomocí souborů cookie nebo parametrů adresy URL.


67) Co znamená trvalý soubor cookie?

Trvalý soubor cookie je trvale uložen v souboru cookie v počítači prohlížeče. Ve výchozím nastavení jsou soubory cookie dočasné a vymažou se, pokud zavřeme prohlížeč.


68) Kdy sezení končí?

Relace se automaticky ukončí, když skript PHP dokončí provádění, ale lze je ukončit ručně pomocí session_write_close().


69) Jaký je rozdíl mezi session_unregister() a session_unset()?

Funkce session_unregister() zruší registraci globální proměnné z aktuální relace a funkce session_unset() uvolní všechny proměnné relace.


70) Co znamená $GLOBALS?

$GLOBALS je asociativní pole obsahující odkazy na všechny proměnné, které jsou aktuálně definovány v globálním rozsahu skriptu.


Otázky k pohovoru PHP pro 10 let zkušeností

71) Co znamená $_SERVER?

$_SERVER je pole obsahující informace vytvořené webovým serverem, jako jsou cesty, záhlaví a umístění skriptů.


72) Co znamená $_FILES?

$_FILES je asociativní pole složené z položek odeslaných do aktuálního skriptu pomocí metody HTTP POST.


73) Jaký je rozdíl mezi $_FILES['userfile']['name'] a $_FILES['userfile']['tmp_name']?

$_FILES['userfile']['name'] představuje původní název souboru na klientském počítači,

$_FILES['userfile']['tmp_name'] představuje dočasné jméno souboru uloženého na serveru.


74) Jak se dostaneme k chybě, když dojde k problému s nahráním souboru?

$_FILES['userfile']['error'] obsahuje kód chyby spojený s nahraným souborem.


75) Jak můžeme změnit maximální velikost souborů, které se mají nahrát?

Maximální velikost souborů k nahrání můžeme změnit změnou upload_max_filesize v php.ini.


76) Co znamená $_ENV?

$_ENV je asociativní pole proměnných odeslaných do aktuálního PHP skriptu pomocí metody prostředí.


77) Co znamená $_COOKIE?

$_COOKIE je asociativní pole proměnných odeslaných aktuálnímu PHP skriptu pomocí HTTP Cookies.


78) Co znamená rozsah proměnných?

Rozsah proměnné je kontext, ve kterém je definována. Z velké části mají všechny proměnné PHP pouze jeden rozsah. Tento jediný rozsah zahrnuje také zahrnuté a požadované soubory.


79) jaký je rozdíl mezi operátorem „BITWISE AND“ a operátorem „LOGICAL AND“?

$a a $b: PRAVDA, pokud $a i $b jsou PRAVDA.

$a & $b: Bity, které jsou nastaveny v $a a $b, jsou nastaveny.


80) Jaké jsou dva hlavní řetězcové operátory?

První je operátor zřetězení ('.'), který vrací zřetězení svých pravých a levých argumentů. Druhý je ('.='), který připojuje argument napravo k argumentu nalevo.


81) Co znamená operátor pole '==='?

$a === $b PRAVDA, pokud $a a $b mají stejné páry klíč/hodnota ve stejném pořadí a stejného typu.


82) Jaké jsou rozdíly mezi $a != $b a $a !== $b?

!= znamená nerovnost (PRAVDA, pokud $a není rovno $b) a !== znamená neidentitu (PRAVDA, pokud $a není totožné s $b).


83) Jak můžeme určit, zda je proměnná PHP instanciovaným objektem určité třídy?

Abychom mohli ověřit, zda je proměnná PHP vytvořeným objektem určité třídy, používáme instanceof.


84) K čemu je užitečný příkaz goto?

Příkaz goto lze umístit tak, aby umožňoval skokping uvnitř PHP programu. Cíl je označen návěstí následovanou dvojtečkou a instrukce je specifikována jako příkaz goto následovaný požadovaným návěstím cíle.


85) jaký je rozdíl mezi Exception::getMessage a Exception:: getLine?

Exception::getMessage nám umožňuje získat zprávu Exception a Exception::getLine nám umožňuje získat řádek, ve kterém došlo k výjimce.


86) Co znamená výraz Exception::__toString?

Exception::__toString poskytuje String reprezentaci výjimky.


87) Jak je možné analyzovat konfigurační soubor?

Funkce parse_ini_file() nám umožňuje načíst ini soubor zadaný v filename a vrátí nastavení v něm v asociativním poli.


88) Jak můžeme určit, zda je proměnná nastavena?

Booleovská funkce isset určuje, zda je proměnná nastavena a není NULL.


89) Jaký je rozdíl mezi funkcemi strstr() a stristr()?

Řetězcová funkce strstr(string allString, string occ) vrací část allString od prvního výskytu occ do konce allString. Tato funkce rozlišuje malá a velká písmena. stristr() je identický s strstr() kromě toho, že nerozlišuje malá a velká písmena.


90) jaký je rozdíl mezi for a foreach?

for je vyjádřen takto:

pro (výraz1; výraz2; výraz3)

prohlášení

První výraz se provede jednou na začátku. V každé iteraci je vyhodnocen expr2. Pokud je PRAVDA, cyklus pokračuje a provedou se příkazy uvnitř for. Pokud se vyhodnotí jako FALSE, provádění smyčky skončí. expr3 je testován na konci každé iterace.

Foreach však poskytuje snadný způsob iterace přes pole a používá se pouze s poli a objekty.


91) Je možné odeslat formulář s vyhrazeným tlačítkem?

Je možné použít document.form.submit() funkce pro odeslání formuláře. Například: <input type=button value="SUBMIT" onClick="document.form.submit()">


92) Jaký je rozdíl mezi ereg_replace() a eregi_replace()?

Funkce eregi_replace() je identická s funkcí ereg_replace() kromě toho, že ignoruje rozlišení velkých a malých písmen při porovnávání abecedních znaků.


93) Je možné chránit speciální znaky v řetězci dotazu?

Ano, používáme funkci urlencode(), abychom mohli chránit speciální znaky.


94) Jaké jsou tři třídy chyb, které se mohou v PHP vyskytnout?

Tři základní třídy chyb jsou upozornění (nekritické), varování (závažné chyby) a fatální chyby (kritické chyby).


95) Jaký je rozdíl mezi znaky \034 a \x34?

\034 je osmičkové číslo 34 a \x34 je šestnáctkové číslo 34.


96) Jak můžeme proměnnou předat navigací mezi stránkami?

Mezi stránkami PHP je možné předávat proměnné pomocí relací, souborů cookie nebo skrytých polí formuláře.


97) Je možné prodloužit dobu provádění PHP skriptu?

Použití set_time_limit (int sekund) nám umožňuje prodloužit dobu provádění PHP skriptu. Výchozí limit je 30 sekund.


98) Je možné zničit cookie?

Ano, je to možné nastavením cookie s časem vypršení platnosti.


99) Jaký je výchozí čas relace v PHP?

Výchozí doba relace v php je do zavření prohlížeče


100) Je možné použít COM komponentu v PHP?

Ano, je možné integrovat komponenty (D)COM (Distributed) Component Object Model do PHP skriptů, které jsou poskytovány jako framework.


101) Vysvětlete, zda je možné sdílet jednu instanci Memcache mezi více PHP projekty?

Ano, je možné sdílet jednu instanci Memcache mezi více projekty. Memcache je úložný prostor a můžete spouštět memcache na jednom nebo více serverech. Klienta můžete také nakonfigurovat tak, aby mluvil s konkrétní sadou instancí. Na stejném hostiteli tedy můžete spustit dva různé procesy Memcache, a přesto jsou zcela nezávislé. Pokud jste svá data nerozdělili na oddíly, pak bude nutné vědět, ze které instance data získat nebo do které vložit.


102) Vysvětlete, jak můžete aktualizovat Memcached, když provedete změny v PHP?

Když se PHP změní, můžete aktualizovat Memcached pomocí

  • Proaktivní vymazání mezipaměti: Vymazání mezipaměti při vložení nebo aktualizaci
  • Resetování mezipaměti: Je to podobné jako u první metody, ale místo pouhého mazání klíčů a čekání na další požadavek na obnovení mezipaměti dat resetujte hodnoty po vložení nebo aktualizaci.

Tyto otázky na pohovoru také pomohou ve vašem životě (ústních)

Shrňte tento příspěvek takto: