Я пытаюсь отобразить часть таблицы, используя само созданный объект. При попытке доступа к методу в классе я получаю:Ловкая фатальная ошибка: объект класса dayDaytimeFields не может быть преобразован в строку
Catchable fatal error: Object of class dayDaytimeFields could not be converted to string in /Applications/MAMP/[...]/test.php on line 85
Line 85:
$testObj->renderFields();
Это мой код:
<table class="table table-striped table-bordered table-hover">
<caption>Week Planner</caption>
<thead>
<tr>
<th></th>
<th>Breakfast</th>
<th>Lunch</th>
<th>Dinner</th>
</tr>
</thead>
<tbody>
<?php
class dayDaytimeFields {
public $dayDaytime;
public $week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
public $weekShort = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
public $dayTime = ['Breakfast', 'Lunch', 'Dinner'];
public $dayTimeShort = ['BrF', 'Lun', 'Din'];
public function renderFields() {
for ($i = 0; $i < count($this->$week); $i++) {
echo "<tr><th>" . $this->$week[$i] . "</th>";
for ($j = 0; $j < count($this->$dayTime); $j++) {
$this->dayDaytime = $this->$weekShort[$i] . $this->$dayTimeShort[$j];
echo "<td><input type='text' name='" . $this->dayDaytime . "' id='" . $this->dayDaytime . "'></td>";
}
echo "</tr>";
}
}
}
?>
<?=
$testObj = new dayDaytimeFields();
$testObj->renderFields();
?>
</tbody>
</table>
Это мой первый шаг в ООП, поэтому любой дополнительный ввод (например, как улучшить код) высоко оценивается :-)
'<=' является эхом синтаксиса стенографии и как сообщение об ошибке? говорит вам, что вы пытаетесь «эхо» 'DayDaytimeFields', который« не может быть преобразован в строку в /Applications/MAMP/[...]/test.php в строке 85 » – PeeHaa
, кроме @PeeHaa, упомянутых выше, у вас больше ошибок , вам не хватает '$ this->' во множестве мест – bansi
PeeHaa и Darragh Enright вы смогли помочь с самой очевидной проблемой. Спасибо! @bansi, не могли бы вы заметить другие ошибки? Я уже исправил забытые операторы $ this->. Но таблицы еще нет :-) – Lex