1. Question: What is the output of the following code?
    <?php
    
    class MyException extends Exception {}
    class AnotherException extends MyException {}
    
    class Foo {
      public function something() {
        throw new AnotherException();
      }
      public function somethingElse() {
        throw new MyException();
      }
    }
    
    $a = new Foo();
    
    try {
      try {
        $a->something();	
      } catch(AnotherException $e) {
        $a->somethingElse();	
      } catch(MyException $e) {
        print "Caught Exception";
      }
    } catch(Exception $e) {
      print "Didn't catch the Exception!";
    }
    
    ?>

    A
    "Caught Exception" followed by "Didn't catch the Exception!"

    B
    A fatal error for an uncaught exception

    C
    "Didn't catch the Exception!"

    D
    "Didn't catch the Exception!" followed by a fatal error

    E
    "Caught Exception"

    Note: Not available
    1. Report
  2. Question: Which two internal PHP interfaces provide functionality which allow you to treat an object like an array?

    A
    iteration

    B
    arrayaccess

    C
    objectarray

    D
    iterator

    E
    array

    Note: Not available
    1. Report
  3. Question: Choose the selection that best matches the following statements: PHP is a _____ scripting language based on the ____ engine. It is primarily used to develop dynamic _____ content, although it can be used to generate ____ documents (among others) as well.

    A
    Dynamic, PHP, Database, HTML

    B
    Embedded, Zend, HTML, XML

    C
    Perl-based, PHP, Web, Static

    D
    Embedded, Zend, Docbook, MySQL

    E
    Zend-based, PHP, Image, HTML

    Note: Looking at the answers, the only one that makes sense for every blank is B. PHP is a scripting language based on the Zend Engine that is usually embedded in HTML code. As such, it is primarily used to develop HTML documents, although it can be used just as nicely to develop other types of documents, such as XML.
    1. Report
  4. Question: Which of the following tags is not a valid way to begin and end a PHP code block?

    A
    <% %>

    B
    <? ?>

    C
    <?= ?>

    D
    <! !>

    E
    <?php ?>

    Note: While tags such as <% %> and <?= ?> are often forgotten in PHP programming, they are valid ways to delimit a PHP code block. The <! and !> tags, however, are not valid and, therefore, the correct answer is D. Keep in mind, in any case, that some of these tags are not always available, depending on how the php.ini file on which the PHP interpreter runs is configured.
    1. Report
  5. Question: Which of the following is not valid PHP code?

    A
    $_10

    B
    ${“MyVar”}

    C
    &$something

    D
    $10_somethings

    E
    $aVaR

    Note: PHP variables always start with a dollar sign and are a sequence of characters and numbers within the Latin alphabet, plus the underscore character. ${"MyVar"} is a valid variable name that simply uses a slightly less common naming convention, while &$something is a reference to the $something variable. Variables, however cannot start with numbers, making $10_somethings invalid and Answer D correct.
    1. Report
  6. Question: What is displayed when the following script is executed?
    <?php
    define(myvalue, "10");
    $myarray[10] = "Dog";
    $myarray[] = "Human";
    $myarray['myvalue'] = "Cat";
    $myarray["Dog"] = "Cat";
    print "The value is: ";
    print $myarray[myvalue]."\n";
    ?>

    A
    The value is: Dog

    B
    The value is: Cat

    C
    The value is: Human

    D
    The value is: 10

    E
    The value is: 10

    Note: The important thing to note here is that the $myarray array’s key value is being referenced without quotes around it. Because of this, the key being accessed is not the myvalue string but the value represented by the myvalue constant. Hence, it is equivalent to accessing $myarray[10], which is Dog, and Answer A is correct.
    1. Report
  7. Question: What is the difference between print() and echo()?

    A
    print() can be used as part of an expression, while echo() can’t

    B
    echo() can be used as part of an expression, while print() can’t

    C
    echo() can be used in the CLI version of PHP, while print() can’t

    D
    print() can be used in the CLI version of PHP, while echo() can’t

    E
    There’s no difference: both functions print out some text!

    Note: Even though print() and echo() are essentially interchangeable most of the time, there is a substantial difference between them. While print() behaves like a function with its own return value (although it is a language construct), echo() is actually a language construct that has no return value and cannot, therefore, be used in an expression. Thus, Answer A is correct.
    1. Report
  8. Question: What is the output of the following script?
    <?php
    $a = 10;
    $b = 20;
    $c = 4;
    $d = 8;
    $e = 1.0;
    $f = $c + $d * 2;
    $g = $f % 20;
    $h = $b - $a + $c + 2;
    $i = $h << $c;
    $j = $i * $e;
    print $j;
    ?>

    A
    128

    B
    42

    C
    242.0

    D
    256

    E
    342

    Note: Other than the simple math, the % operator is a modulus, which returns whatever the remainder would be if its two operands were divided. The << operator is a left-shift operator, which effectively multiplies an integer number by powers of two. Finally, the ultimate answer is multiplied by a floating point and, therefore, its type changes accordingly. However, the result is still printed out without any fractional part, since the latter is nil. The final output is 256 (Answer D).
    1. Report
  9. Question: Which values should be assigned to the variables $a, $b and $c in order for the following script to display the string Hello, World!?
    <?php
    $string = "Hello, World!";
    $a = ?;
    $b = ?;
    $c = ?;
    if($a) {
      if($b && !$c) {
        echo "Goodbye Cruel World!";
      } else if(!$b && !$c) {
        echo "Nothing here";
      }
    } else {
       if(!$b){
         if(!$a && (!$b && $c)) {
            echo "Hello, World!";
         } else {
           echo "Goodbye World!";
         }
      } else {
        echo "Not quite.";
      }
    }
    ?>

    A
    False, True, False

    B
    True, True, False

    C
    False, True, True

    D
    False, False, True

    E
    True, True, True

    Note: Following the logic of the conditions, the only way to get to the Hello, World! string is in the else condition of the first if statement. Thus, $a must be False. Likewise, $b must be False. The final conditional relies on both previous conditions ($a and $b) being False, but insists that $c be True (Answer D).
    1. Report
  10. Question: What will the following script output?
    <?php
    $array = '0123456789ABCDEFG';
    $s = '';
    for ($i = 1; $i < 50; $i++) {
      $s .= $array[rand(0,strlen ($array) - 1)];
    }
    echo $s;
    ?>

    A
    A string of 50 random characters

    B
    A string of 49 copies of the same character, because the random number generator has not been initialized

    C
    A string of 49 random characters

    D
    Nothing, because $array is not an array

    E
    A string of 49 ‘G’ characters

    Note: The correct answer is C. As of PHP 4.2.0, there is no need to initialize the random number generator using srand() unless a specific sequence of pseudorandom numbers is sought.
    1. Report
Copyright © 2024. Powered by Intellect Software Ltd