2015-06-15 6 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-объект в массиве. Это забавно, потому что я пробовал этот же метод сделать это в другом проекте, используя тот же синтаксис, и он отлично работал. Кроме того, я не понимаю, почему он говорит, что я пытаюсь прочитать из массива, когда я действительно добавляю его.

Есть ли у кого-нибудь идеи, что здесь происходит?

EDIT: Я обвел проблему и сделал более простую версию кода, чтобы вы могли убедиться сами.

+3

@ LeZohan68 Добавить значение массива в свойство '$ utdanning', может быть? – Daan

+2

@ LeZohan68 Это не то же имя переменной. Один из них называется '$ this-> utdanning', другой' $ utdanning'. – deceze

+0

Я в основном пытаюсь добавить объект (они являются тем же самым именем переменной, но все еще остаются), которые используются в качестве параметра функции и добавляют его в частный массив $ utdanning. Я как бы учусь, работая над проектом, поэтому простите меня, если здесь что-то совершенно иррациональное. Я попытался изменить имя параметра без какого-либо решения проблемы. – SudokuNinja

ответ

1

Итак, чтобы отметить это, я избавился от проблемы просто переписав символы внутри метода leggtilUtdanning. Похоже, что это была какая-то кодировка символов - такая проблема, как вы указали, но я совершенно не знаю, как это произошло. В любом случае, спасибо за помощь.

+0

Вы должны принять свой ответ, нажав на зеленый галочку. Это запишет, что ваша проблема была решена с помощью Stack Overflow и даст вам очки, как описано в [tour]. –

Смежные вопросы