Test de PHP II

Cuestionario con preguntas sobre clases y otros conceptos, perteneciente al grupo desarrollo-web
20 Preguntas

1) Atendiendo a la visualidad o nivel de acceso de una propiedad o método. La palabra reservada protected define:


a) La propiedad o método es accesible desde cualquier parte
b) La propiedad o método es accesible desde la misma clase o mediante clases heredadas
c) La propiedad o método es accesible únicamente desde la clase que los definió.

2) El método destructor será llamado tan pronto como no hayan otras referencias a un objeto determinado, o en cualquier otra circunstancia de finalización.


a) Falso
b) No existen destructores en PHP
c) Verdadero

3) Para definir un método personalizado de autocarga de clases en PHP, utilizamos la función:


a) spl_autoload_register
b) autoload_register
c) Ninguna de las anteriores
d) class_autoload_register

4) El siguiente código ¿es correcto?

$tabla=['uno'=>10,'dos'=>3,'tres'=>1,'cuatro'=>8];
foreach($tabla as $clave => $valor) :
  if($valor>5):
   echo $clave.' Es mayor<br>';
  else:
   echo $clave.' Es menor<br>';
  endif;
endforeach;


a) Falso
b) Verdadero

5) La siguiente definición de la clase ‘Clase’

interface Mascara {
   public function fifo();
   public function cargar_dato($d);
   public function lifo();
}
class Clase implements Mascara {
   private static $dato = [];
   public function cargar_dato($dato) {
      self::$dato[]=$dato;
   }
   public function fifo() {
      return array_shift(self::$dato);
   }
   public function lifo() {
      return array_pop(self::$dato);
   }
   public function vaciar_datos() {
      self::$dato=[];
   }
}


¿implementa de forma correcta la definición de la interface ‘Mascara’?


a) Falso
b) Verdadero

6) El constructor de una clase se define por medio del método público:

Respuesta múltiple.
a) __construct()
b) nombreclase() para versiones PHP 3 y 4
c) construct()

7) Tras la ejecución del siguiente código. ¿Qué valor tomaría la variable $a?

$a=10;
$b=0;
while($a++<10) $b++;


a) 1
b) Error de código
c) 0

8) Una propiedad o método estático de una clase:

Respuesta múltiple.
a) Los hacen accesibles sin la necesidad de instanciar la clase.
b) Si se trata de una propiedad estática, esta pierde su valor al cambiar de contexto.
c) A las propiedades estáticas no puede acceder a través del objeto utilizando el operador flecha (->)

9) Una variable estática existe sólo en el ámbito local de la función, pero no pierde su valor cuando la ejecución del programa abandona este ámbito.


a) Verdadero
b) Falso

10) Cuáles de los siguientes nombres de variables son correctos:

Respuesta múltiple.
a) $uno
b) $1
c) &dos
d) $_pagos
e) $UNO

11) Atendiendo a las siguientes líneas de código

class Clase {
public $dato = 1;

$c = new Clase;
$d = &$c;
$c->dato=10;
$d->dato=5;
echo 'c: '.++$c->dato;


¿qué valor se mostrará al final de su ejecución?


a) c:11
b) c:5
c) c:6
d) c:10

12) ¿Cuáles de las siguientes funciones nos permiten ordenar arrays asociativos en PHP?

Respuesta múltiple.
a) asort()
b) sort()
c) arsort()

13) Cuando queremos asignar valores por referencia en PHP utilizamos el carácter:


a) #
b) &
c) $
d) Ninguno de los anteriores

14) Antecediendo la palabra clave final en la declaración de un método de una clase:


a) Impide que las clases hijas sobrescriban un método
b) Impide que las clases hijas puedan utilizar el método
c) Indica que es el último método accesible

15) Qué argumentos admite el constructor del objeto mysqli que nos abre una conexión al servidor MySQL que está en ejecución.


a) mysqli(host, username, passwd, dbname, port, socket)
b) mysqli(host, username, passwd, dbname, socket)
c) mysqli(host, username, passwd, dbname)
d) mysqli(host, username, passwd, dbname, port)

16) Los métodos dato_pago() y DATO_PAGO() son el mismo ya que no se distinguen mayúsculas y minúsculas.


a) Falso
b) Verdadero

17) Que palabra escribiremos al definir una clase para indicar que hereda los métodos y propiedades de otra clase


a) extends
b) inherit
c) final
d) define

18) Para escribir comentarios en PHP podemos utilizar

Respuesta múltiple.
a) */…../*
b) #....
c) //….
d) ‘…..

19) Las interfaces de objetos permiten crear código con el cual especificar qué métodos deben ser implementados por una clase, sin tener que definir cómo estos métodos son manipulados.


a) Verdadero
b) Falso

20) ¿Qué datos visualizará el siguiente código PHP que trabaja con un array?

$tabla=['uno'=>10,'dos'=>3,'tres'=>1,'cuatro'=>8];
sort($tabla);
foreach($tabla as $clave => $valor) {
echo $clave.'=>'.$valor.'<br>';
};


a) cuatro=>8
dos=>3
tres=>1
uno=>10
b) tres=>1
dos=>3
cuatro=>8
uno=>10
c) Error de código
d) 0=>1
1=>3
2=>8
3=>10