PHP - shuffle array dentro de una clase

   
Vista:

shuffle array dentro de una clase

Publicado por Dale (2 intervenciones) el 22/07/2017 02:48:46
Buenas noches, estoy creando una clase llamada pregunta. Dentro de esa clase, hay una variable que es un array , con 4 datos dentro de ese array. La clase seria de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
class Pregunta {
 
	var $textPregunta;
	var $ArrayRespuestas=array();
 
 
	function RespuestasAleatorias(){
 
		shuffle($ArrayRespuestas);
	}
 
}
?>

Pues bien, se me había ocurrido meter la función shuffle($array); el caso es que este código no funciona, da un error que indica que dentro de la función shuffle debe haber un array. Y yo me pregunto, ¿que hay mal aquí?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

shuffle array dentro de una clase

Publicado por kip (870 intervenciones) el 22/07/2017 03:29:53
Hola, estas enviando a shuffle() una variable que no existe (no esta declarada dentro del contexto del método de la función), si lo que deseas es enviar la propiedad de la clase debes obtenerla usando la pseudovariable $this que es una referencia al objeto/clase actual, te recomiendo tambien no usar la vieja nomenclatura var para definir propiedades, usa simplemente alguna de las palabras reservadas para definir su acceso o visibilidad ya sea public, private o protected.

1
shuffle($this->ArrayRespuestas);

http://php.net/manual/es/language.oop5.properties.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

shuffle array dentro de una clase

Publicado por Dale (2 intervenciones) el 23/07/2017 01:02:20
Buenas noches, efectivamente, cogí un ejemplo de código antiguo y no conté con el $this

Finalmente lo he hecho así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
class Pregunta {
 
	private $Id, $textPregunta, $textRespuesta, $vecesUsada, $vecesAcertada, $rate;
	private $ArrayRespuestas = array();
 
	function getId(){
		$result=$this->Id;
		return $result;
	}
 
	function setId($Id){
		$this->Id=$Id;
	}
 
	function getTextPregunta(){
		$result=$this->textPregunta;
		return $result;
	}
 
	function setTextPregunta($textPregunta){
		$this->textPregunta=$textPregunta;
	}
 
	function getTextRespuesta(){
		$result=$this->textRespuesta;
		return $result;
	}
 
	function setTextRespuesta($textRespuesta){
		$this->textRespuesta=$textRespuesta;
	}
 
	function getVecesUsada(){
		$result=$this->vecesUsada;
		return $result;
	}
 
	function setVecesUsada($vecesUsada){
		$this->vecesUsada=$vecesUsada;
	}
 
	function getVecesAcertada(){
		$result=$this->vecesAcertada;
		return $result;
	}
 
	function setVecesAcertada($vecesAcertada){
		$this->vecesAcertada=$vecesAcertada;
	}
 
	function getRate(){
		$result=$this->rate;
		return $result;
	}
 
	function setRate($rate){
		$this->rate=$rate;
	}
 
 
	function getArrayRespuestas($indice){
		$result=$this->ArrayRespuestas[$indice];
		return $result;
	}
 
	function setArrayRespuestas($respuesta, $indice){
		$this->ArrayRespuestas[$indice]=$respuesta;
	}
 
	function RespuestasAleatorias(){
 
		shuffle($this->ArrayRespuestas);
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad