PHP 受保护的变量对我不起作用

PHP Protected variables don't work for me

我在 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>

谢谢

将您的 php 代码替换为以下代码:

<?php

error_reporting(-1);

class A
{
    protected $variable;
}

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

?>

它应该可以解决问题,如果还有其他问题,可以为您提供更详细的信息。

您不能在 class 的正文中放置诸如属性之类的说明。只允许成员定义。将 $this->variable = 'A'; 放入方法中。

变化:

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

收件人:

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

Class 变量应该在方法或函数中使用。

<?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