簡體   English   中英

解析錯誤:語法錯誤,意外'(',期待','或';'in

[英]Parse error: syntax error, unexpected '(', expecting ',' or ';' in

我收到以下解析錯誤:

解析錯誤:第7行的H:\\ Programs \\ USBWebserver v8.5 \\ 8.5 \\ root \\ oopforum \\ func \\ register.class.php中的語法錯誤,意外'(',期待','或';')

這與我班上的以下代碼行有關:

private $random_name = rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);

我不明白為什么這行代碼會導致解析錯誤?

這是一些周圍的代碼:

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;
        }
}

導致解析錯誤的原因是什么?

您無法將成員變量初始化為非靜態的任何內容,並且您正在嘗試調用函數。

手冊

此聲明可能包括初始化,但此初始化必須是常量值 - 也就是說,它必須能夠在編譯時進行評估,並且必須不依賴於運行時信息才能進行評估。

解決方法是在構造函數中設置變量:

private $random_name;
public function __construct() { 
    $this->random_name = rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);
}

你不能這樣做:

private $image_dimensions = getimagesize($temp_dir);

函數,變量和其他非靜態的東西都不能被調用來設置類變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM