Переменные, защищенные PHP, не работают для меня

У меня проблемы с защищенными переменными в PHP. Почему не работает этот код? Он продолжает показывать мне ошибку 500. Вот код:

<?php
class A
{
protected $variable;
}

class B extends A
{
$this->variable = 'A';
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<!-- Code -->
</body>
</html>

Спасибо

0

Решение

Вы не можете поместить инструкции как приписывания в теле класса. Разрешены только определения членов. Положить $this->variable = 'A'; внутри метода.

Изменить:

class B extends A
{
$this->variable = 'A';
}

Для того, чтобы:

class B extends A
{
public function __construct(){
$this->variable = 'A';
}
}
0

Другие решения

Замените свой php-код следующим:

<?php

error_reporting(-1);

class A
{
protected $variable;
}

class B extends A
{
public function __construct()
{
$this->variable = 'A';
}
}

?>

Это должно решить проблему, и если есть какие-либо другие, дать вам более подробную информацию о том, что происходит.

0

Переменные класса должны использоваться внутри методов или функций.

<?php
class A
{
protected $variable;
}

class B extends A
{
// Class variables need to be used within methods.
// For example: to set the value
function ConnectToDatabase()
{
$this->variable = 'mysql:user;pwd:12345';
}

// or to return the value
function output()
{
return $this->variable;
}
}

$b = new B();

$b->connectToDatabase();

echo $b->output();

http://sandbox.onlinephpfunctions.com/code/ac3171a98ccb901ca7cc8890659ca409a47fb30c

0
По вопросам рекламы [email protected]