2011-12-12 20 views
9

me pregunto si puedo establecer una variable hasta el infinito, y si no lo que la mejor manera de lograr que mi problema es. Toma mi función a continuación:PHP: establecer la variable hasta el infinito

public function seekValue($value, $column = null, $limit = null) { 
    $this->connect('rb'); 
    $results = array(); 
    while (!feof($this->_pointer)) { 
     $data = explode($this->_config->delimiter(), fgets($this->_pointer, 1024)); 
     if(!is_null($column)) { 
      if ($data[$this->_config->columns($column, "string")->index()] == $value) 
       array_push($results, $this->formatRow($data)); 
     } else { 
      if (in_array($value, $data)) 
       array_push($results, $this->formatRow($data)); 
     } 
    } 
    $this->disconnect(); 
    switch (count($results)) { 
     case 0; 
      return false; 
     case 1; 
      return $results[0]; 
     default; 
      return $results; 
    } 
} 

puse $limit = null en la lista de parámetros de función, sin embargo, más adelante quiero usar en mi $limit bucle while como tal while (!feof($this->_pointer) && count($results) < $limit) en caso que el usuario decida aprobar un número entero a ella.

Si este fuera el caso que podía hacer esto:

if (!is_int($limit)) { 
    $limit = infinity; 
} 

decir que si $limit no se establece plazo infinitas veces.

Espero que esto tenga sentido.

+2

umm bucles infinitos ??????? ¡¡¡¡¡¡¡¡BLASFEMIA!!!!!!!! –

+0

@LaurenceBurke no es un bucle infinito, que tiene dos condiciones sólo quiero hacer una de las condiciones infinita –

+1

'$ límite = log (0);' –

Respuesta

1

¿Por qué no simplemente adaptar la condición:

while (!feof($this->_pointer) && (($limit === NULL) || (count($results) < $limit))) 
1

¿Por qué no ...

while (!feof($this->_pointer) && (is_null($limit) || count($results) < $limit)) 

De esta manera si no es nulo es sólo cuando se evaluará & & count ($ resultado) < $ límite

+0

Este fallará cuando '' $ Límite de las aguas es null' al menos; toda la expresión evaluará a 'FALSE'. – jeroen

+0

Para ilustrar: http://codepad.org/ikDKWlAg – jeroen

+0

Buena captura, editado – Aknosis

48

Sólo para responder a la pregunta original:

sí se puede establecer una variable hasta el infinito mediante la asignación de INF

$x = INF; 
var_dump($x > 10000); // bool(true) 
var_dump($x - 100); // float(INF) 
+0

'INF' era justo lo que necesitaba. – akinuri

Cuestiones relacionadas