致命错误:无法使用 [] 进行读取

Posted

技术标签:

【中文标题】致命错误:无法使用 [] 进行读取【英文标题】:Fatal error: Cannot use [] for reading 【发布时间】:2015-06-15 07:43:16 【问题描述】:

我收到了这个错误

Fatal error: Cannot use [] for reading in... on line 26

检查了这里关于这个错误的所有线程,我仍然无法弄清楚。查看我的代码,我没有做错任何事情。

<?php
class Person

    //Variables for personal information//
    private $navn;
    private $adresse;
    private $postnummer;
    private $poststed;
    private $telefonnummer;
    private $fodselsdato;
    public function __construct($navn, $adresse, $postnummer, $poststed, $telefonnummer, $fodselsdato)
    
        $this->navn = $navn;
        $this->adresse = $adresse;
        $this->postnummer = $postnummer;
        $this->poststed = $poststed;
        $this->telefonnummer = $telefonnummer;
        $this->fodselsdato = $fodselsdato;
    
    //Creates an array to store education for a person//
    private $utdanning = array();

    //Function to add education to the array//
    public function leggTilUtdanning(Utdanning $utdanning)
    
        $this->utdanning[] = $utdanning;
    

//Class for education
class Utdanning

    private $institusjon;
    private $studieretning;
    private $grad;
    private $startet;
    private $ferdig;

    public function __construct($institusjon, $studieretning, $grad, $startet, $ferdig)
    
        $this->institusjon = $institusjon;
        $this->studieretning = $studieretning;
        $this->grad = $grad;
        $this->startet = $startet;
        $this->ferdig = $ferdig;
    

$person1 = new Person('Dave Lewis', 'Downing Street 14', 0442, 'Northville', 98765432, '17.05.1975');
$utdanning = new Utdanning('Harvard', 'Economics', 'Bachelor', 2013, 2016);
$person1->leggTilUtdanning($utdanning);
?>

错误来自函数内部的行,我试图将 Utdanning 对象添加到数组中。这很有趣,因为我在另一个项目上尝试了同样的方法,使用完全相同的语法,而且效果很好。此外,我不明白为什么它说我正在尝试从数组中读取,而我实际上是在添加它。

有人知道这里发生了什么吗?

编辑:我圈出了问题并制作了更简单的代码版本,以便您自己查看。

【问题讨论】:

@LeZohan68 将数组值添加到属性$utdanning 可能吗? @LeZohan68 这不是同一个变量名。一个名为$this-&gt;utdanning,另一个名为$utdanning @user 请为我们提供一个完整可重现的测试用例。您显示的代码实际上并没有做任何事情,因为它从未真正执行过。您的实际代码中可能还有更多导致问题的原因。这在这里应该可以正常工作。 @LeZohan68 请拒绝回答您显然不熟悉的主题 源代码 (UTF-8) 中的字符无效?我复制并粘贴了提供的代码,它在这里工作正常(PHP 5.3.29)。 【参考方案1】:

所以,为了解决这个问题,我只是通过重写方法leggtilUtdanning 中的字符来解决这个问题。就像您指出的那样,似乎是某种字符编码问题,但我完全不知道这是怎么发生的。不管怎样,谢谢大家的帮助。

【讨论】:

您应该通过单击绿色勾号来接受您的答案。这将记录您的问题已被 Stack Overflow 解决,并会按照tour 中的说明为您提供积分。

以上是关于致命错误:无法使用 [] 进行读取的主要内容,如果未能解决你的问题,请参考以下文章

Git 因致命错误而失败 - 无法读取用户名终端提示已禁用

嘿,我正在尝试学习 git,但我遇到了致命错误:无法从远程仓库读取 [重复]

C MySQL错误“致命错误LNK1107:无效或损坏的文件:无法在0x368读取”

Pyinstaller - “致命错误!将脚本转换为 exe 时无法执行脚本”

致命错误LNK1107:文件无效或损坏:无法读取0x21E00D

ssh:无法解析主机名 git:名称或服务未知 致命:无法从远程存储库读取