Топ 100 въпроса и отговора за интервю за PHP (PDF)

Ето въпроси и отговори за интервю за PHP за по-свежи, както и за опитни кандидати, за да получат мечтаната работа.

 

Въпроси за интервю за PHP за първокурсници


1) Какво е PHP?

PHP е уеб език, базиран на скриптове, който позволява на разработчиците да създават динамично генерирани уеб страници.


2) Какво означават инициалите на PHP?

PHP означава Hypertext Pre-processor.

👉 Безплатно изтегляне на PDF: Въпроси и отговори за интервю за PHP


3) На кой език за програмиране прилича PHP?

Синтаксисът на PHP наподобява Perl и C


4) Какво означава PEAR?

PEAR означава „PHP хранилище за разширения и приложения“. Той разширява PHP и осигурява по-високо ниво на програмиране за уеб разработчиците.


5) Каква е действително използваната PHP версия?

Версия 7.1 или 7.2 е препоръчителната версия на PHP.


6) Как се изпълнява PHP скрипт от командния ред?

Просто използвайте интерфейса на командния ред на PHP (CLI) и задайте името на файла на скрипта, който да бъде изпълнен, както следва:
php script.php


7) Как да стартирате интерактивната обвивка на PHP от интерфейса на командния ред?

Просто използвайте PHP CLI програмата с опцията -a, както следва:
php -a


8) Кой е правилният и най-често срещаният начин за стартиране и завършване на PHP блок код?

Двата най-често срещани начина за стартиране и завършване на PHP скрипт са:

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

9) Как можем да покажем изхода директно в браузъра?

За да можем да покажем изхода директно в браузъра, трябва да използваме специални тагове .


10) Каква е основната разлика между PHP 4 и PHP 5?

PHP 5 представя много допълнителни ООП (Обектно-ориентирано програмиране) Характеристика.


11) Поддържа ли се множествено наследяване в PHP?

PHP поддържа само единично наследяване; това означава, че един клас може да бъде разширен само от един единствен клас с помощта на ключовата дума 'разширен'.


12) Какво е значението на финален клас и финален метод?

'final' е въведен в PHP5. Краен клас означава, че този клас не може да бъде разширен и окончателен метод не може да бъде заменен.


13) Как се прави сравнението на обекти в PHP?

Използваме оператора '==', за да проверим дали два обекта са инстанцирани от един и същи клас и имат еднакви атрибути и еднакви стойности. Можем да проверим дали два обекта препращат към едно и също копие на един и същи клас чрез използването на оператора за идентичност '==='.


14) Как могат да си взаимодействат PHP и HTML?

Възможно е да се генерира HTML чрез PHP скриптове и е възможно да се предават части от информация от HTML към PHP.


15) Какъв тип операция е необходима при предаване на стойности през формуляр или URL?

Ако искаме да предадем стойности през формуляр или URL, тогава трябва да ги кодираме и декодираме с помощта на htmlspecialchars() и urlencode().


16) Как може PHP и Javascript взаимодействат?

PHP и Javascript не може да си взаимодейства директно, тъй като PHP е сървърен език и Javascript е език от страна на клиента. Въпреки това можем да обменяме променливи, тъй като PHP може да генерира Javascript код, който да се изпълнява от браузъра и е възможно да се предадат конкретни променливи обратно към PHP чрез URL адреса.


17) Какво е необходимо, за да можете да използвате функцията за изображения?

GD библиотеката е необходима за изпълнение на функции за изображения.


18) Каква е употребата на функцията 'imagetypes()'?

imagetypes() дава формата и типовете на изображенията, поддържани от текущата версия на GD-PHP.


19) Какви са функциите, които трябва да се използват за получаване на свойствата на изображението (размер, ширина и височина)?

- функции са getimagesize() за размер, imagesx() за ширина и imagesy() за височина.


20) Как грешките в изпълнението се обработват с функциите include() и require()?

Ако функцията require() няма достъп до файла, след което завършва с фатална грешка. Въпреки това, include() дава предупреждение и PHP скриптът продължава да се изпълнява.


21) Каква е основната разлика между require() и require_once()?

require(), и require_once() изпълнява същата задача, с изключение на това, че втората функция проверява дали PHP скриптът вече е включен или не, преди да го изпълни.

(същото за include_once() и include())


22) Как мога да покажа текст с PHP скрипт?

Възможни са два метода:

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

23) Как можем да покажем информация за променлива и да бъде прочетена от човек с PHP?

Използваме, за да можем да покажем резултат, който може да се чете от човека print_r().


24) Как е възможно да се зададе безкрайно време за изпълнение на PHP скрипт?

Set_time_limit(0), добавен в началото на скрипт, задава безкрайно времето за изпълнение, за да няма PHP грешка „превишено максимално време за изпълнение“. Възможно е също така да посочите това във файла php.ini.


Въпроси и отговори за интервю за PHP за опитни

25) Какво означава грешката в PHP „Грешка при анализиране в PHP – неочаквана T_променлива на ред x“?

Това е синтактична грешка в PHP, която изразява, че грешка на ред x спира анализирането и изпълнението на програмата.


26) Какво трябва да направим, за да можем да експортираме данни в Excel файл?

Най-разпространеният и използван начин е да получите данни във формат, поддържан от Excel. Например, възможно е да напишете .csv файл, да изберете например запетая като разделител между полетата и след това да отворите файла с Excel.


27) За какво е полезна функцията file_get_contents()?

file_get_contents() позволява четене на файл и съхраняването му в низова променлива.


28) Как можем да се свържем с a MySQL база данни от PHP скрипт?

За да можете да се свържете с a MySQL база данни, трябва да използваме функцията mysqli_connect(), както следва:

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

29) За какво е полезна функцията mysql_pconnect()?

mysql_pconnect() осигури постоянна връзка с базата данни, това означава, че връзката не се затваря, когато PHP скриптът приключи.

Тази функция не се поддържа в PHP 7.0 и по-нови версии


30) Как се обработва наборът от резултати на Mysql в PHP?

Наборът от резултати може да се обработва с помощта на mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object или mysqli_fetch_row.


31) Как е възможно да се знае броя на върнатите редове в резултатния набор?

Функцията mysqli_num_rows() връща броя на редовете в набор от резултати.


32) Коя функция ни дава броя на засегнатите записи от заявка?

mysqli_affected_rows() връща броя на записите, засегнати от SQL заявка.


33) Каква е разликата между mysqli_fetch_object() и mysqli_fetch_array()?

- mysqli_fetch_object() функцията събира първия единичен съответстващ запис, където mysqli_fetch_array() събира всички съвпадащи записи от таблицата в масив.


34) Как можем да получим достъп до данните, изпратени чрез URL с метода GET?

За достъп до данните, изпратени чрез метода GET, използваме масив $_GET по следния начин:

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

35) Как можем да получим достъп до данните, изпратени чрез URL с метода POST?

За достъп до данните, изпратени по този начин, използвате масива $_POST.

Представете си, че имате поле на формуляр, наречено „var“ във формуляра, когато потребителят щракне върху изпращане във формуляра за публикация, тогава можете да получите достъп до стойността по следния начин:

$_POST["var"];

36) Как можем да проверим дали стойността на дадена променлива е число?

Възможно е да използвате специалната функция is_numeric(), за да проверите дали е число или не.


37) Как можем да проверим дали стойността на дадена променлива е буквено-цифрова?

Възможно е да използвате специалната функция, ctype_alnum, за да проверите дали това е буквено-цифрова стойност или не.


38) Как да проверя дали дадена променлива е празна?

Ако искаме да проверим дали дадена променлива има стойност или не, е възможно да използваме функцията empty().


39) Какво означава функцията unlink()?

Функцията unlink() е предназначена за обработка на файлова система. Той просто изтрива файла, даден като запис.


40) Какво означава функцията unset()?

Функцията unset() е предназначена за управление на променливи. Това ще направи променливата недефинирана.


41) Как да скрия данни, преди да ги съхраня в базата данни?

Функцията addslashes ни позволява да избягваме данни преди съхранение в базата данни.


42) Как е възможно да се премахнат екраниращи символи от низ?

Функцията stripslashes ни позволява да премахнем екраниращите знаци преди апострофите в a низ.


43) Как можем автоматично да избегнем входящите данни?

Трябва да активираме записа Magic quotes в конфигурационния файл на PHP.


44) Какво означава функцията get_magic_quotes_gpc()?

Функцията get_magic_quotes_gpc() ни казва дали магическите кавички са включени или не.


45) Възможно ли е да премахнете HTML таговете от данните?

Функцията strip_tags() ни позволява да изчистим низ от HTML таговете.


46) за какво е полезна статичната променлива във функцията?

Статичната променлива се дефинира във функция само за първи път и нейната стойност може да бъде променена по време на извикване на функция, както следва:

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

47) Как можем да дефинираме променлива, достъпна във функции на PHP скрипт?

Тази функция е възможна с помощта на ключовата дума global.


48) Как е възможно да се върне стойност от функция?

Функция връща стойност с помощта на инструкцията 'return $value;'.


49) Кой е най-удобният метод за хеширане, който да се използва за хеширане на пароли?

За предпочитане е да се използва crypt(), който първоначално поддържа няколко алгоритъма за хеширане, или функцията hash(), която поддържа повече варианти от crypt(), вместо да се използват общите алгоритми за хеширане като md5, sha1 или sha256, тъй като те са замислени като бързи. Следователно хеширането на пароли с тези алгоритми може да създаде уязвимост.


50) Кое криптографско разширение осигурява генериране и проверка на цифрови подписи?

PHP-OpenSSL разширението предоставя няколко криптографски операции, включително генериране и проверка на цифрови подписи.


Въпроси за интервю за PHP за 5 години опит

51) Как се дефинира константа в PHP скрипт?

Директивата define() ни позволява да дефинираме константа, както следва:

define ("ACONSTANT", 123);

52) Как можете да предадете променлива по референция?

За да можем да предадем променлива по референция, използваме амперсанд пред нея, както следва $var1 = &$var2


53) Ще работи ли сравнението на цяло число 12 и низ „13“ в PHP?

„13“ и 12 могат да се сравняват в PHP, тъй като той прехвърля всичко към целочислен тип.


54) Как е възможно да се прехвърлят типове в PHP?

Името на изходния тип трябва да бъде указано в скоби преди променливата, която трябва да бъде преобразувана, както следва:

* (int), (integer) – преобразуване в цяло число

* (bool), (boolean) – преобразуване на boolean

* (float), (double), (real) – хвърляне към float

* (низ) – преобразува към низ

* (масив) – прехвърляне към масив

* (обект) – прехвърляне към обект


55) Кога условен оператор завършва с endif?

Когато оригиналното if е последвано от: и след това кодовия блок без скоби.


56) Как се използва троичният условен оператор в PHP?

Състои се от три израза: условие и два операнда, описващи каква инструкция трябва да се изпълни, когато определеното условие е вярно или невярно, както следва:

Expression_1?Expression_2 : Expression_3;

57) За какво се използва функцията func_num_args()?

Функцията func_num_args() се използва, за да даде броя на параметрите, предадени на функция.


58) Ако променливата $var1 е зададена на 10 и $var2 е зададена на знака var1, каква е стойността на $$var2?

$$var2 съдържа стойност 10.


59) Какво означава достъп до клас чрез ::?

:: се използва за достъп до статични методи, които не изискват инициализация на обект.


60) В PHP обектите се предават по стойност или по референция?

В PHP обектите се предават по референция.


61) Родителските конструктори извикват ли се имплицитно вътре в конструктор на клас?

Не, родителският конструктор трябва да бъде извикан изрично, както следва:

parent::constructor($value)

62) Каква е разликата между __sleep и __wakeup?

__sleep връща масива от всички променливи, които трябва да бъдат запазени, докато __wakeup ги извлича.


63) Какво е по-бързо?

1- Комбиниране на две променливи, както следва:

$variable1 = 'Hello ';

$variable2 = 'World';

$variable3 = $variable1.$variable2;

Or

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

$variable3 ще съдържа „Hello World“. Първият код е по-бърз от втория код, особено за големи масиви от данни.


64) какво е определението за сесия?

Сесията е логически обект, който ни позволява да запазим временни данни в множество PHP страници.


65) Как да инициирам сесия в PHP?

Използването на функцията session_start() ни позволява да активираме сесия.


66) Как можете да разпространявате идентификатор на сесия?

Можете да разпространявате идентификатор на сесия чрез бисквитки или URL параметри.


67) Какво е значението на постоянна бисквитка?

Постоянната бисквитка се съхранява постоянно във файл с бисквитки на компютъра на браузъра. По подразбиране бисквитките са временни и се изтриват, ако затворим браузъра.


68) Кога приключват сесиите?

Сесиите автоматично приключват, когато PHP скриптът завърши изпълнението, но могат да бъдат прекратени ръчно с помощта на session_write_close().


69) Каква е разликата между session_unregister() и session_unset()?

Функцията session_unregister() дерегистрира глобална променлива от текущата сесия, а функцията session_unset() освобождава всички променливи на сесията.


70) Какво означава $GLOBALS?

$GLOBALS е асоциативен масив, включващ препратки към всички променливи, които в момента са дефинирани в глобалния обхват на скрипта.


Въпроси за интервю за PHP за 10 години опит

71) Какво означава $_SERVER?

$_SERVER е масив, включващ информация, създадена от уеб сървъра, като пътища, заглавки и местоположения на скриптове.


72) Какво означава $_FILES?

$_FILES е асоциативен масив, съставен от елементи, изпратени до текущия скрипт чрез метода HTTP POST.


73) Каква е разликата между $_FILES['userfile']['name'] и $_FILES['userfile']['tmp_name']?

$_FILES['userfile']['name'] представлява оригиналното име на файла на клиентската машина,

$_FILES['userfile']['tmp_name'] представлява временното име на файла, съхраняван на сървъра.


74) Как можем да получим грешката, когато има проблем с качването на файл?

$_FILES['userfile']['error'] съдържа кода на грешка, свързан с качения файл.


75) Как можем да променим максималния размер на файловете за качване?

Можем да променим максималния размер на файловете за качване, като променим upload_max_filesize в php.ini.


76) Какво означава $_ENV?

$_ENV е асоциативен масив от променливи, изпратен до текущия PHP скрипт чрез метода на средата.


77) Какво означава $_COOKIE?

$_COOKIE е асоциативен масив от променливи, изпратен до текущия PHP скрипт с помощта на HTTP бисквитките.


78) Какво означава обхватът на променливите?

Обхватът на променливата е контекстът, в който тя е дефинирана. В по-голямата си част всички PHP променливи имат само един обхват. Този единичен обхват обхваща включени и необходими файлове.


79) каква е разликата между оператора "BITWISE AND" и оператора "LOGICAL AND"?

$a и $b: TRUE, ако $a и $b са TRUE.

$a & $b: Битовете, които са зададени както в $a, така и в $b, са зададени.


80) Кои са двата основни оператора за низове?

Първият е операторът за конкатенация ('.'), който връща конкатенацията на своите десен и ляв аргумент. Вторият е ('.='), който добавя аргумента отдясно към аргумента отляво.


81) Какво означава операторът на масива '==='?

$a === $b ВЯРНО, ако $a и $b имат едни и същи двойки ключ/стойност в същия ред и от едни и същи типове.


82) Какви са разликите между $a != $b и $a !== $b?

!= означава неравенство (ВЯРНО, ако $a не е равно на $b) и !== означава неидентичност (ВЯРНО, ако $a не е идентично на $b).


83) Как можем да определим дали дадена PHP променлива е инстанциран обект от определен клас?

За да можем да проверим дали дадена PHP променлива е инстанциран обект от определен клас, използваме instanceof.


84) За какво е полезен операторът goto?

Операторът goto може да бъде поставен, за да позволи прескачане в PHP програмата. Целта е посочена от етикет, последван от двоеточие, а инструкцията е посочена като команда goto, последвана от желания етикет за цел.


85) каква е разликата между Exception::getMessage и Exception::getLine?

Exception::getMessage ни позволява да получим съобщението за изключение, а Exception::getLine ни позволява да получим реда, в който е възникнало изключението.


86) Какво означава изразът Exception::__toString?

Exception::__toString дава низовото представяне на изключението.


87) Как е възможно да се анализира конфигурационен файл?

Функцията parse_ini_file() ни позволява да заредим ini файла, посочен във filename и връща настройките в него в асоциативен масив.


88) Как можем да определим дали дадена променлива е зададена?

Булевата функция isset определя дали дадена променлива е зададена и не е NULL.


89) Каква е разликата между функциите strstr() и stristr()?

Функцията за низ strstr(string allString, string occ) връща част от allString от първото срещане на occ до края на allString. Тази функция е чувствителна към главни и малки букви. stristr() е идентичен на strstr() с изключение на това, че не е чувствителен към главни и малки букви.


90) каква е разликата между for и foreach?

за се изразява по следния начин:

за (expr1; expr2; expr3)

изявление

Първият израз се изпълнява веднъж в началото. Във всяка итерация се оценява expr2. Ако е TRUE, цикълът продължава и операторите във for се изпълняват. Ако се изчисли като FALSE, изпълнението на цикъла приключва. expr3 се тества в края на всяка итерация.

Въпреки това, foreach предоставя лесен начин за итерация на масиви и се използва само с масиви и обекти.


91) Възможно ли е да се изпрати формуляр със специален бутон?

Възможно е да се използва document.form.submit() функция за изпращане на формуляра. Например: <input type=button value="SUBMIT" onClick="document.form.submit()">


92) Каква е разликата между ereg_replace() и eregi_replace()?

Функцията eregi_replace() е идентична с функцията ereg_replace() с изключение на това, че игнорира разликата между главни и малки букви при съпоставяне на букви.


93) Възможно ли е да се защитят специални символи в низ на заявка?

Да, използваме функцията urlencode(), за да можем да защитим специалните знаци.


94) Кои са трите класа грешки, които могат да възникнат в PHP?

Трите основни класа грешки са забележки (некритични), предупреждения (сериозни грешки) и фатални грешки (критични грешки).


95) Каква е разликата между символите \034 и \x34?

\034 е осмично 34, а \x34 е шестнадесетично 34.


96) Как можем да предадем променливата през навигацията между страниците?

Възможно е да предавате променливите между PHP страниците, като използвате сесии, бисквитки или скрити полета на формуляри.


97) Възможно ли е да се удължи времето за изпълнение на PHP скрипт?

Използването на set_time_limit(int seconds) ни позволява да удължим времето за изпълнение на PHP скрипт. Ограничението по подразбиране е 30 секунди.


98) Възможно ли е да унищожите бисквитка?

Да, възможно е, като настроите бисквитката с минало време на изтичане.


99) Какво е времето за сесия по подразбиране в PHP?

Времето за сесия по подразбиране в php е до затварянето на браузъра


100) Възможно ли е да се използва COM компонент в PHP?

Да, възможно е да се интегрират (разпределени) компоненти на компонентен обектен модел ((D)COM) в PHP скриптове, които се предоставят като рамка.


101) Обяснете дали е възможно да се сподели един екземпляр на Memcache между множество PHP проекти?

Да, възможно е да споделяте едно копие на Memcache между множество проекти. Memcache е пространство за съхранение на памет и можете да стартирате memcache на един или повече сървъри. Можете също така да конфигурирате вашия клиент да говори с определен набор от екземпляри. Така че можете да стартирате два различни Memcache процеса на един и същ хост и въпреки това те са напълно независими. Освен ако не сте разделили данните си, тогава става необходимо да знаете от кой екземпляр да получите данните от или в който да поставите.


102) Обяснете как можете да актуализирате Memcached, когато правите промени в PHP?

Когато PHP се промени, можете да актуализирате Memcached от

  • Превантивно изчистване на кеша: Изчистване на кеша при вмъкване или актуализация
  • Нулиране на кеша: Той е подобен на първия метод, но вместо просто да изтриете ключовете и да изчакате следващата заявка за данните за обновяване на кеша, нулирайте стойностите след вмъкването или актуализирането.

Тези въпроси за интервюто също ще ви помогнат във вашата viva (устна)