2015-06-15 249 views
0

我得到这个错误致命错误:无法使用[]阅读

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对象到数组。这很有趣,因为我尝试了在另一个项目上使用完全相同的语法来完成它的相同方法,并且它完美地工作。此外,我不明白为什么它说我试图从数组中读取数据,当我实际添加到数组中时。

有没有人有一个想法这里发生了什么?

编辑︰我盘问这个问题,并提出了一个更简单的代码版本,所以你可以看到自己。

+3

@ LeZohan68向属性'$ utdanning'添加一个数组值?也许吧? – Daan

+2

@ LeZohan68这不是同一个变量名。一个名为'$ this-> utdanning',另一个'$ utdanning'。 – deceze

+0

我基本上试图添加对象(它们是相同的变量名称,但仍然不同)作为该函数的参数,并将其添加到专用数组$ utdanning。当我到这里工作一个项目时,我有点学习,所以如果在这里发生一些完全不合理的事情,请原谅我。我试着改变参数的名字而不解决问题。 – SudokuNinja

回答

1

所以,只是为了标记这个问题,我简单地通过重写方法leggtilUtdanning中的字符来解决问题。看起来像是你指出的某种字符编码问题,但我完全不知道这是怎么回事。无论如何,感谢所有的帮助。

+0

你应该点击绿色的勾号接受你的答案。这会记录你的问题已经被Stack Overflow解决了,并且会按照[游览]中的描述给你提供点数。 –

相关问题