php - t_variable - Error de análisis: error de sintaxis, inesperado ''('', esperando '','' o '';'' en
php syntax checker (2)
No puede inicializar las variables miembro a nada que no sea estático, y está intentando llamar a una función.
Del manual :
Esta declaración puede incluir una inicialización, pero esta inicialización debe ser un valor constante, es decir, debe poder evaluarse en el momento de la compilación y no debe depender de la información del tiempo de ejecución para poder evaluarse.
La solución es establecer su variable en el constructor:
private $random_name;
public function __construct() {
$this->random_name = rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);
}
Estoy recibiendo el siguiente error de análisis:
Error de análisis: error de sintaxis, inesperado ''('', esperando '','' o '';'' en H: / Programs / USBWebserver v8.5 / 8.5 / root / oopforum / func / register.class.php en la línea 7
que se relaciona con la siguiente línea de código en mi clase:
private $random_name = rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);
No puedo ver por qué esta línea de código causaría un error de análisis.
Aquí hay un código circundante:
class register{
public $post_data = array();
private $dbh;
private $allowed_type = array(''image/jpeg'',''image/png'',''image/gif'');
private $random_name = rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);
private $path = ''img/thumb_/''.$random_name. $_FILES[''file''][''name''];
private $max_width = 4040;
private $max_height = 4040;
private $max_size = 5242880;
private $temp_dir = $_FILES[''file''][''tmp_name''];
private $image_type = $_FILES[''file''][''type''];
private $image_size = $_FILES[''file''][''size''];
private $image_name = $_FILES[''file''][''name''];
private $image_dimensions = getimagesize($temp_dir);
private $image_width = $image_dimensions[0]; // Image width
private $image_height = $image_dimensions[1]; // Image height
private $error = array();
public function __construct($post_data, PDO $dbh){
$this->post_data = array_map(''trim'', $post_data);
$this->dbh = $dbh;
}
}
¿Qué está causando el error de análisis?
No puedes hacer esto:
private $image_dimensions = getimagesize($temp_dir);
Las funciones, las variables y cualquier otra cosa que no sea estática no se pueden llamar para establecer variables de clase.