Как использовать $ _GET в классе php? Я пытался сделать так:
class UploadHandler
{
public $a = $_GET['size'];
}
Он всегда дает мне ошибку
Как использовать $ _GET в классе php? Я пытался сделать так:
class UploadHandler
{
public $a = $_GET['size'];
}
Он всегда дает мне ошибку
Try:
class UploadHandler
{
public $a;
function __construct() {
$this->a = isset($_GET['size']) ? $_GET['size'] : null;
}
}
Это. Вы не можете назначить динамическую переменную в объявлении класса. Для этого вам нужно использовать метод (будь то внутри или вне класса). –
красиво сделано, +1 для тернарного оператора - о и получить его правильно –
Sébastien, __construct() - это метод? – Farkie
Ваша цель, чтобы получить размер файла загрузки? Если это так, вы хотите использовать переменную $ _FILES. http://php.net/manual/en/reserved.variables.files.php В частности, http://www.php.net/manual/en/features.file-upload.post-method.php
Технически нет причин, по которым класс не может получить доступ к глобальной переменной. Однако лучшие практики могут предполагать, что ваш контроллер/шлюз вытаскивает данные и передает их классу. например
<?
$uploaded_file = $_FILES['userfile']['tmp_name'];
$UploadHandler = new UploadHandler();
$permanent_local_path = $UploadHandler->saveFileSomewhere($uploaded_file);
?>
Попробуйте это:
class UploadHandler
{
public $a;
public function __construct(){
if(isset($_GET['size']){
$this->a = $_GET['size'];
}else{
$this->a = null // or maybe 0
}
}
}
сообщение Какую ошибку вы получаете? – Arjan