【问题标题】:Cannot initialize an uninitialized variable inside a class method无法在类方法中初始化未初始化的变量
【发布时间】:2017-02-23 13:44:03
【问题描述】:

我刚刚开始使用 PHP 练习 OO 编程。最近遇到一个问题。

我试图在类中声明一个变量,但未初始化它。后来在该类的一个方法中,当我尝试初始化变量时,它显示以下错误:

未定义变量:第 6 行 C:\wamp\www\sample.php 中的 a

致命错误:无法在第 6 行访问 C:\wamp\www\sample.php 中的空属性

这是我要执行的代码:

<?php
    class Sample{
        public $a;

        function call($b){
            $this->$a = $b;
            echo $a;
        }
    }

    $sam = new Sample();
    $sam->call(5);
?>

我该如何解决这个问题?

【问题讨论】:

标签: php


【解决方案1】:

在函数调用中,$a 不存在。只有 $this->a(a 之前没有 $),这是您的“sam”对象的属性,以及 $b,它是一个输入参数。 另外,在设置属性时,一定不能使用 $a。使用 $this->a。

如果你有一个包含类属性名的变量,你应该使用$this->$a,这意味着$this->asdf, if $a = 'asdf';

【讨论】:

  • 知道了!!谢谢!!
【解决方案2】:

正确的语法是$this-&gt;a,而不是$this-&gt;$a

【讨论】:

    猜你喜欢
    • 2020-07-26
    • 1970-01-01
    • 2019-08-02
    • 2016-05-11
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多