У меня проблемы с защищенными переменными в 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>
Спасибо
Вы не можете поместить инструкции как приписывания в теле класса. Разрешены только определения членов. Положить $this->variable = 'A';
внутри метода.
Изменить:
class B extends A
{
$this->variable = 'A';
}
Для того, чтобы:
class B extends A
{
public function __construct(){
$this->variable = 'A';
}
}
Замените свой php-код следующим:
<?php
error_reporting(-1);
class A
{
protected $variable;
}
class B extends A
{
public function __construct()
{
$this->variable = 'A';
}
}
?>
Это должно решить проблему, и если есть какие-либо другие, дать вам более подробную информацию о том, что происходит.
Переменные класса должны использоваться внутри методов или функций.
<?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