次の解析エラーが表示されます。
解析エラー:構文エラー、予期しない '('、 '、'または ';が必要です'がH:\ Programs\USBWebserver v8.5\8.5\root\oopforum\func\register.class.phpの7行目にあります
これは私のクラスの次のコード行に関連しています。
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);
関数、変数、その他静的でないものは、クラス変数を設定するために呼び出すことはできません。