Cita:
Iniciado por Cuervoo Te fijaste cual es el valor que tiene result cuando da null? Hacé que muestre
$this->result y fijate si siempre es el mismo valor cuando da null o va cambiando. Seguile los pasos en las tres líneas que lo modificás.
Código PHP:
Ver original$this->result = count ( $imput );
//resto un valor para que random no escoja un valor no encontrado en el array
$this->result = $this->result - 1;
//elijo un numero al azar
$this->result = mt_rand( 0, $this->result );
En esas tres.
He hecho var_dump() a las tres líneas.
El código en el método para los var_dump() ha sido el siguiente
Código PHP:
Ver original//cuento los valores del array
echo "result count<br>";
$this->result = count ( $imput );
//resto un valor para que random no escoja un valor no encontrado en el array
echo "result -1<br>";
$this->result = $this->result - 1;
//elijo un numero al azar
echo "result mt_rand<br>";
$this->result = mt_rand( 0, $this->result );
Mientras que el código para los var_dump() en la función ha sido el siguiente
Código PHP:
Ver originalfor($i=0; $i<=4 ; $i++)
{
//obtengo 5 numeros aleatorios
echo "iteración <b>". $i."</b><br>";
$getquestionrandom = $newget->getrandomvalue ( $getquestions );
?>
<pre>
<?php
var_dump( $_SESSION['randomresult']['count'] ); echo "fin de la iteración <b>". $i."</b><br>";
//var_dump($getquestions[$getquestionrandom]);
?>
</pre>
<?php
//guardo las preguntas segun los numeros anteriores
array_push($questionsrandom, $getquestions[$getquestionrandom]);
//instancio al metodo para hacer las sustituciones
$questionsrandom[$i]['question'] = $newget->setvaluestags($tags,
"@".$_SESSION['randomresult']['friend']['screen_name'], $questionsrandom[$i]['question']);
}
Los resultados
Código PHP:
Ver original//estos primeros var_dump corresponden a la elección del usuario aleatoriamente
//por este motivo no se cuenta y no influye en el problema puesto que antes de
//entrar en las preguntas aleatorias la sesión count es vaciada.
int 5
result -1
int 4
int 2
//aquí es donde comienza a escoger las preguntas aleatorias
iteración 0
int 11
result -1
int 10
int 0
int 0
0 => int 0
fin de la iteración 0
iteración 1
int 11
result -1
int 10
int 10
int 10
0 => int 0
1 => int 10
fin de la iteración 1
iteración 2
int 11
result -1
int 10
int 6
int 6
0 => int 0
1 => int 10
2 => int 6
fin de la iteración 2
iteración 3
int 11
result -1
int 10
int 0
int 11
result -1
int 10
int 5
null
0 => int 0
1 => int 10
2 => int 6
3 => int 5
fin de la iteración 3
//esto es del xdebug
( ! ) Notice: Undefined index: in C:\xampp\htdocs\xampp\web\videosfav\twitter2\control\controller_public.php on line 218
Call Stack
# Time Memory Function Location
1 0.0010 135904 {main}( ) ..\index.php:0
2 1.0441 582568 html_start( ) ..\index.php:23
3 1.0441 582584 play_start( ) ..\html_public.php:133
iteración 4
int 11
result -1
int 10
int 0
int 11
result -1
int 10
int 3
null
0 => int 0
1 => int 10
2 => int 6
3 => int 5
4 => int 3
fin de la iteración 4
//esto es del xdebug
( ! ) Notice: Undefined index: in C:\xampp\htdocs\xampp\web\videosfav\twitter2\control\controller_public.php on line 218
Call Stack
# Time Memory Function Location
1 0.0010 135904 {main}( ) ..\index.php:0
2 1.0441 582568 html_start( ) ..\index.php:23
3 1.0441 582584 play_start( ) ..\html_public.php:133
EDITO
La aparición de null no sigue un patrón. Puede aparecer en cualquier lugar y hasta en dos posiciones en una misma ejecución. Nunca tres, hasta el momento. Hay veces que no aparece null y lo realiza tal y como se espera.