Пример #1
0
 public function test_False()
 {
     $this->assertFalse(comparar('Hola', 'Adios'));
 }
Пример #2
0
 /**
  * Busca los registros en memoria que cumplen una condicion.
  * Solo se chequea la condicion de igualdad. No se chequean tipos
  * @param array $condiciones Asociativo de campo => valor. El valor no puede ser NULL porque siempre da falso
  *  			Para condiciones más complejas (no solo igualdad) puede ser array($columna, $condicion, $valor), 
  * 				por ejemplo array(array('id_persona','>=',10),...)
  * @param boolean $usar_cursores Este conjunto de filas es afectado por la presencia de cursores en las tablas padres
  * @return array Ids. internos de las filas, pueden no estar numerado correlativamente
  */
 function get_id_fila_condicion($condiciones = null, $usar_cursores = true)
 {
     //En principio las coincidencias son todas las filas
     $coincidencias = $this->get_id_filas($usar_cursores);
     //Si hay condiciones, se filtran estas filas
     if (isset($condiciones)) {
         if (!is_array($condiciones)) {
             throw new toba_error("Las condiciones de filtrado deben ser un array asociativo");
         }
         //Controlo que todas los campos que se utilizan para el filtrado existan
         /*foreach( array_keys($condiciones) as $columna){
         
         			}*/
         foreach ($coincidencias as $pos => $id_fila) {
             //Verifico las condiciones
             foreach (array_keys($condiciones) as $campo) {
                 if (is_array($condiciones[$campo])) {
                     list($columna, $operador, $valor) = $condiciones[$campo];
                 } else {
                     $columna = $campo;
                     $operador = '==';
                     $valor = $condiciones[$campo];
                 }
                 if (!isset($this->_columnas[$columna])) {
                     throw new toba_error_def("El campo '{$columna}' no existe. No es posible filtrar por dicho campo");
                 }
                 if (!isset($this->_datos[$id_fila][$columna])) {
                     // Es posible que una fila no posea una columa. Ej: una nueva fila no tiene la clave si esta es una secuencia.
                     // Si el valor no existe, considero que la comparacion con esa fila da falso (* != NULL)
                     unset($coincidencias[$pos]);
                     break;
                 } else {
                     if (!comparar($this->_datos[$id_fila][$columna], $operador, $valor)) {
                         //Se filtra la fila porque no cumple las condiciones
                         unset($coincidencias[$pos]);
                         break;
                     }
                 }
             }
         }
     }
     return array_values($coincidencias);
 }