PHP Interview Questions and Answers
1. How do you call a constructor for a parent class?
parent::constructor($value)
2. WHAT ARE THE DIFFERENT TYPES OF ERRORS IN PHP?
Here are three basic types of runtime errors in PHP:
1. Notices: These are trivial, non-critical errors that PHP encounters while executing a script for example, accessing a variable that has not yet been defined. By default, such errors are not displayed to the user at all although you can change this default behavior.
2. Warnings: These are more serious errors for example, attempting to include() a file which does not exist. By default, these errors are displayed to the user, but they do not result in script termination.
3. Fatal errors: These are critical errors for example, instantiating an object of a non-existent class, or calling a non-existent function. These errors cause the immediate termination of the script, and PHPs default behavior is to display them to the user when they take place.
Internally, these variations are represented by twelve different error types
3. Whats the special meaning of __sleep and __wakeup?
__sleep returns the array of all the variables than need to be saved, while __wakeup retrieves them.
4. Would you initialize your strings with single quotes or double quotes?
Since the data inside the single-quoted string is not parsed for variable substitution, its always a better idea speed-wise to initialize a string with single quotes, unless you specifically need variable substitution.How can we extract string abc.com from a string http://info@abc.com using regular expression of php?
We can use the preg_match() function with /.*@(.*)$/ as
the regular expression pattern. For example:
preg_match(/.*@(.*)$/,http://info@abc.com,$data);
echo $data[1];
5. What are the differences between GET and POST methods in form submitting, give the case where we can use GET and we can use POST methods?
Anwser 1:
When we submit a form, which has the GET method it displays pair of name/value used in the form at the address bar of the browser preceded by url. Post method doesnt display these values.
Anwser 2:
When you want to send short or small data, not containing ASCII characters, then you can use GET Method. But for long data sending, say more then 100 character you can use POST method.
Once most important difference is when you are sending the form with GET method. You can see the output which you are sending in the address bar. Whereas if you send the form with POST method then user can not see that information.
Anwser 3:
What are GET and POST?
GET and POST are methods used to send data to the server: With the GET method, the browser appends the data onto the URL. With the Post method, the data is sent as standard input.
Major Difference
In simple words, in POST method data is sent by standard input (nothing shown in URL when posting while in GET method data is sent through query string.
Ex: Assume we are logging in with username and password.
GET: we are submitting a form to login.php, when we do submit or similar action, values are sent through visible query string (notice ./login.php?username= &password= as URL when executing the script login.php) and is retrieved by login.php by $_GET[username] and $_GET[password].
POST: we are submitting a form to login.php, when we do submit or similar action, values are sent through invisible standard input (notice ./login.php) and is retrieved by login.php by $_POST[username] and $_POST[password].
POST is assumed more secure and we can send lot more data than that of GET method is limited (they say Internet Explorer can take care of maximum 2083 character as a query string).
Anwser 4:
In the get method the data made available to the action page ( where data is received ) by the URL so data can be seen in the address bar. Not advisable if you are sending login info like password etc. In the post method the data will be available as data blocks and not as query string in case of get method.
Anwser 5:
When we submit a form, which has the GET method it pass value in the form of query string (set of name/value pair) and display along with URL. With GET we can a small data submit from the form (a set of 255 character) whereas Post method doesnt display value with URL. It passes value in the form of Object and we can submit large data from the form.
Anwser 6:
On the server side, the main difference between GET and POST is where the submitted is stored. The $_GET array stores data submitted by the GET method. The $_POST array stores data submitted by the POST method.
On the browser side, the difference is that data submitted by the GET method will be displayed in the browsers address field. Data submitted by the POST method will not be displayed anywhere on the browser.
GET method is mostly used for submitting a small amount and less sensitive data. POST method is mostly used for submitting a large amount or sensitive data.What is the difference between the functions unlink and unset?
unlink() is a function for file system handling. It will simply delete the file in context.
unset() is a function for variable management. It will make a variable undefined.How come the code works, but doesnt for two-dimensional array of mine?
Any time you have an array with more than one dimension, complex parsing syntax is required. print Contents: {$arr[1][2]} wouldve worked.How can we register the variables into a session?
session_register($session_var);
$_SESSION[var] = value;
6. What is the maximum length of a table name, a database name, or a field name in MySQL?
Database name: 64 characters
Table name: 64 characters
Column name: 64 characters
7. What is the difference between characters 23 and x23?
The first one is octal 23, the second is hex 23.
8. With a heredoc syntax, do I get variable substitution inside the heredoc contents?
Yes.
9. How can we create a database using PHP and mysql?
We can create MySQL database with the use of mysql_create_db($databaseName) to create a database.
10. I am writing an application in PHP that outputs a printable version of driving directions. It contains some long sentences, and I am a neat freak, and would like to make sure that no line exceeds 50 characters. How do I accomplish that with PHP?
On large strings that need to be formatted according to some length specifications, use wordwrap() or chunk_split().
11. Whats the output of the ucwords function in this example?
$formatted = ucwords(LEARNPHPEASY IS COLLECTION OF INTERVIEW QUESTIONS);
print $formatted;
What will be printed is LEARNPHPEASY IS COLLECTION OF INTERVIEW QUESTIONS.
ucwords() makes every first letter of every word capital, but it does not lower-case anything else. To avoid this, and get a properly formatted string, its worth using strtolower() first.
12. How can we extract string abc.com from a string mailto:info@abc.com?subject=Feedback using regular expression of PHP?
$text = mailto:info@abc.com?subject=Feedback;
preg_match(|.*@([^?]*)|, $text, $output);
echo $output[1];
Note that the second index of $output, $output[1], gives the match, not the first one, $output[0].So if md5() generates the most secure hash, why would you ever use the less secure crc32() and sha1()?
Crypto usage in PHP is simple, but that doesnt mean its free. First off, depending on the data that youre encrypting, you might have reasons to store a 32-bit value in the database instead of the 160-bit value to save on space. Second, the more secure the crypto is, the longer is the computation time to deliver the hash value. A high volume site might be significantly slowed down, if frequent md5() generation is required.
How can we destroy the session, how can we unset the variable of a session?
session_unregister() Unregister a global variable from the current session
session_unset() Free all session variables
13. What are the different functions in sorting an array?
Sorting functions in PHP:
asort()
arsort()
ksort()krsort()
uksort()
sort()
natsort()
rsort()
14. How can we know the count/number of elements of an array?
2 ways:
a) sizeof($array) This function is an alias of count()
b) count($urarray) This function returns the number of elements in an array.
Interestingly if you just pass a simple var instead of an array, count() will return
15. How many ways we can pass the variable through the navigation between the pages?
At least 3 ways:
1. Put the variable into session in the first page, and get it back from session in the next page.
2. Put the variable into cookie in the first page, and get it back from the cookie in the next page.
3. Put the variable into a hidden form field, and get it back from the form in the next page.
1. How do you call a constructor for a parent class?
parent::constructor($value)
2. WHAT ARE THE DIFFERENT TYPES OF ERRORS IN PHP?
Here are three basic types of runtime errors in PHP:
1. Notices: These are trivial, non-critical errors that PHP encounters while executing a script for example, accessing a variable that has not yet been defined. By default, such errors are not displayed to the user at all although you can change this default behavior.
2. Warnings: These are more serious errors for example, attempting to include() a file which does not exist. By default, these errors are displayed to the user, but they do not result in script termination.
3. Fatal errors: These are critical errors for example, instantiating an object of a non-existent class, or calling a non-existent function. These errors cause the immediate termination of the script, and PHPs default behavior is to display them to the user when they take place.
Internally, these variations are represented by twelve different error types
3. Whats the special meaning of __sleep and __wakeup?
__sleep returns the array of all the variables than need to be saved, while __wakeup retrieves them.
4. Would you initialize your strings with single quotes or double quotes?
Since the data inside the single-quoted string is not parsed for variable substitution, its always a better idea speed-wise to initialize a string with single quotes, unless you specifically need variable substitution.How can we extract string abc.com from a string http://info@abc.com using regular expression of php?
We can use the preg_match() function with /.*@(.*)$/ as
the regular expression pattern. For example:
preg_match(/.*@(.*)$/,http://info@abc.com,$data);
echo $data[1];
5. What are the differences between GET and POST methods in form submitting, give the case where we can use GET and we can use POST methods?
Anwser 1:
When we submit a form, which has the GET method it displays pair of name/value used in the form at the address bar of the browser preceded by url. Post method doesnt display these values.
Anwser 2:
When you want to send short or small data, not containing ASCII characters, then you can use GET Method. But for long data sending, say more then 100 character you can use POST method.
Once most important difference is when you are sending the form with GET method. You can see the output which you are sending in the address bar. Whereas if you send the form with POST method then user can not see that information.
Anwser 3:
What are GET and POST?
GET and POST are methods used to send data to the server: With the GET method, the browser appends the data onto the URL. With the Post method, the data is sent as standard input.
Major Difference
In simple words, in POST method data is sent by standard input (nothing shown in URL when posting while in GET method data is sent through query string.
Ex: Assume we are logging in with username and password.
GET: we are submitting a form to login.php, when we do submit or similar action, values are sent through visible query string (notice ./login.php?username= &password= as URL when executing the script login.php) and is retrieved by login.php by $_GET[username] and $_GET[password].
POST: we are submitting a form to login.php, when we do submit or similar action, values are sent through invisible standard input (notice ./login.php) and is retrieved by login.php by $_POST[username] and $_POST[password].
POST is assumed more secure and we can send lot more data than that of GET method is limited (they say Internet Explorer can take care of maximum 2083 character as a query string).
Anwser 4:
In the get method the data made available to the action page ( where data is received ) by the URL so data can be seen in the address bar. Not advisable if you are sending login info like password etc. In the post method the data will be available as data blocks and not as query string in case of get method.
Anwser 5:
When we submit a form, which has the GET method it pass value in the form of query string (set of name/value pair) and display along with URL. With GET we can a small data submit from the form (a set of 255 character) whereas Post method doesnt display value with URL. It passes value in the form of Object and we can submit large data from the form.
Anwser 6:
On the server side, the main difference between GET and POST is where the submitted is stored. The $_GET array stores data submitted by the GET method. The $_POST array stores data submitted by the POST method.
On the browser side, the difference is that data submitted by the GET method will be displayed in the browsers address field. Data submitted by the POST method will not be displayed anywhere on the browser.
GET method is mostly used for submitting a small amount and less sensitive data. POST method is mostly used for submitting a large amount or sensitive data.What is the difference between the functions unlink and unset?
unlink() is a function for file system handling. It will simply delete the file in context.
unset() is a function for variable management. It will make a variable undefined.How come the code works, but doesnt for two-dimensional array of mine?
Any time you have an array with more than one dimension, complex parsing syntax is required. print Contents: {$arr[1][2]} wouldve worked.How can we register the variables into a session?
session_register($session_var);
$_SESSION[var] = value;
6. What is the maximum length of a table name, a database name, or a field name in MySQL?
Database name: 64 characters
Table name: 64 characters
Column name: 64 characters
7. What is the difference between characters 23 and x23?
The first one is octal 23, the second is hex 23.
8. With a heredoc syntax, do I get variable substitution inside the heredoc contents?
Yes.
9. How can we create a database using PHP and mysql?
We can create MySQL database with the use of mysql_create_db($databaseName) to create a database.
10. I am writing an application in PHP that outputs a printable version of driving directions. It contains some long sentences, and I am a neat freak, and would like to make sure that no line exceeds 50 characters. How do I accomplish that with PHP?
On large strings that need to be formatted according to some length specifications, use wordwrap() or chunk_split().
11. Whats the output of the ucwords function in this example?
$formatted = ucwords(LEARNPHPEASY IS COLLECTION OF INTERVIEW QUESTIONS);
print $formatted;
What will be printed is LEARNPHPEASY IS COLLECTION OF INTERVIEW QUESTIONS.
ucwords() makes every first letter of every word capital, but it does not lower-case anything else. To avoid this, and get a properly formatted string, its worth using strtolower() first.
12. How can we extract string abc.com from a string mailto:info@abc.com?subject=Feedback using regular expression of PHP?
$text = mailto:info@abc.com?subject=Feedback;
preg_match(|.*@([^?]*)|, $text, $output);
echo $output[1];
Note that the second index of $output, $output[1], gives the match, not the first one, $output[0].So if md5() generates the most secure hash, why would you ever use the less secure crc32() and sha1()?
Crypto usage in PHP is simple, but that doesnt mean its free. First off, depending on the data that youre encrypting, you might have reasons to store a 32-bit value in the database instead of the 160-bit value to save on space. Second, the more secure the crypto is, the longer is the computation time to deliver the hash value. A high volume site might be significantly slowed down, if frequent md5() generation is required.
How can we destroy the session, how can we unset the variable of a session?
session_unregister() Unregister a global variable from the current session
session_unset() Free all session variables
13. What are the different functions in sorting an array?
Sorting functions in PHP:
asort()
arsort()
ksort()krsort()
uksort()
sort()
natsort()
rsort()
14. How can we know the count/number of elements of an array?
2 ways:
a) sizeof($array) This function is an alias of count()
b) count($urarray) This function returns the number of elements in an array.
Interestingly if you just pass a simple var instead of an array, count() will return
15. How many ways we can pass the variable through the navigation between the pages?
At least 3 ways:
1. Put the variable into session in the first page, and get it back from session in the next page.
2. Put the variable into cookie in the first page, and get it back from the cookie in the next page.
3. Put the variable into a hidden form field, and get it back from the form in the next page.