Error de análisis: error de syntax, inesperado ‘(‘, esperando ‘,’ o ‘;’ en

Recibo el siguiente error de análisis:

Error de análisis: error de syntax, inesperado ‘(‘, esperando ‘,’ o ‘;’ en H: \ Progtwigs \ 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 que lo rodea:

 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 puede inicializar las variables miembro a nada que no sea estático, y está tratando de llamar a una función.

Del manual :

Esta statement puede incluir una inicialización, pero esta inicialización debe ser un valor constante, es decir, debe poder evaluarse en tiempo de comstackción y no debe depender de la información del tiempo de ejecución para poder ser evaluada.

La solución alternativa 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); } 

No puedes hacer esto:

 private $image_dimensions = getimagesize($temp_dir); 

Las funciones, variables y cualquier otra cosa no estática no pueden invocarse para establecer variables de clase.