[PHP BASICS][9.Object to JSON String][RUNTIME ERROR]
<?php
if (isset($_GET['input']) && isset($_GET['delimiter'])) {
$delimiter = $_GET['delimiter'];
$input = $_GET['input'];
$input = explode("\n", $input);
$input = array_map('trim', $input);
class Student
{
public $name;
public $surname;
public $age;
public $grade;
public $date;
public $town;
public function __construct($name, $surname, $age, $grade, $date, $town)
{
$this->name = $name;
$this->surname = $surname;
$this->age = $age;
$this->grade = doubleval($grade);
$this->date = $date;
$this->town = $town;
}
};
$data = [];
for ($i = 0; $i < count($input); $i++) {
$line = explode($delimiter, $input[$i]);
$data[$line[0]] = $line[1];
}
$student = new Student(null, null, null, null, null, null);
foreach ($data as $d => $val) {
if ($d == "grade")
$val = intval($val);
$student->$d = $val;
}
echo json_encode($student, JSON_UNESCAPED_SLASHES);
}
?>
Judge-а дава RUNTIME ERROR на всеки тест. А с локални тестове никакъв проблем не дава.
Идеи?
Да, но какъв е проблема да си използвам Student?
8-ма задача също ми е със Student, но няма проблем..
Не знам дали винаги въвеждат обекти от тип Student с полета Name, Surname, Age, Grade, Date и Town. Не съм гледал тестовете в Judge. Другият вариант е да ти дава грешка, защото използваш intval() вместо doubleval().
не, не, аз данните дето ги дават ги превеждам през стринг и ги вкарвам в масив data(key -> value) и него го ползвам, че да си създам студент-а във foreach и после просто изписвам json-а на ръчно направения ми Student.
И intval doubleval със и без тях пробвах пак същото дава. :/