1. What does a special set of tags <?= and ?> do in PHP?
    – The output is displayed directly to the browser.
  2. What’s the difference between include and require?
    – It’s how they handle failures. If the file is not found by require(), it will cause a fatal error and halt the execution of the script. If the file is not found by include(), a warning will be issued, but execution will continue.
  3. I am trying to assign a variable the value of 0123, but it keeps coming up with a different number, what’s the problem?
    – PHP Interpreter treats numbers beginning with 0 as octal. Look at the similar PHP interview questions for more numeric problems.
  4. Would I use print “$a dollars” or “{$a} dollars” to print out the amount of dollars in this example?
    – In this example it wouldn’t matter, since the variable is all by itself, but if you were to print something like “{$a},000,000 mln dollars”, then you definitely need to use the braces.
  5. How do you define a constant?
    – Via define() directive, like define (“MYCONSTANT”, 100);
  6. How do you pass a variable by value?
    – Just like in C++, put an ampersand in front of it, like $a = &$b
  7. Will comparison of string “10″ and integer 11 work in PHP? – Yes, internally PHP will cast everything to the integer type, so numbers 10 and 11 will be compared.
  8. When are you supposed to use endif to end the conditional statement?
    – When the original if was followed by : and then the code block without braces.
  9. Explain the ternary conditional operator in PHP?
    – Expression preceding the ? is evaluated, if it’s true, then the expression preceding the : is executed, otherwise, the expression following : is executed.
  10. How do I find out the number of parameters passed into function?
    – func_num_args() function returns the number of parameters passed in.
  11. If the variable $a is equal to 5 and variable $b is equal to character a, what’s the value of $$b?
    – 100, it’s a reference to existing variable.
  12. What’s the difference between accessing a class method via -> and via ::?
    – :: is allowed to access methods that can perform static operations, i.e. those, which do not require object initialization.
  13. Are objects passed by value or by reference?
    – Everything is passed by value.
  14. How do you call a constructor for a parent class?
    – parent::constructor($value)
  15. What’s the special meaning of __sleep and __wakeup?
    – __sleep returns the array of all the variables than need to be saved, while __wakeup retrieves them.
  16. Why doesn’t the following code print the newline properly? <?php
    $str = ‘Hello, there.nHow are you?nThanks for visiting TechInterviews’;
    print $str;
    Because inside the single quotes the n character is not interpreted as newline, just as a sequence of two characters – and n.
  17. 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, it’s always a better idea speed-wise to initialize a string with single quotes, unless you specifically need variable substitution.
  18. How come the code <?php print “Contents: $arr[1]“; ?> works, but <?php print “Contents: $arr[1][2]“; ?> doesn’t 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]}” would’ve worked.
  19. What is the difference between characters �23 and x23?
    – The first one is octal 23, the second is hex 23.
  20. With a heredoc syntax, do I get variable substitution inside the heredoc contents?
    – Yes.