Професионална програма
Loading...
Tangrila avatar Tangrila 21 Точки

[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 на всеки тест. А с локални тестове никакъв проблем не дава.
Идеи?

Тагове:
0
Софтуерни технологии 02/07/2016 20:34:06
Tanyo avatar Tanyo 152 Точки

Здравей, не е необходимо да превръщаш $data масива в клас и обекти.

Директно си печатай $data в json формат: echo json_encode($data, JSON_UNESCAPED_SLASHES);

След което обърни внимание на кастването от стринг към инт и дабъл на годините и оцекната... :)

0
Tangrila avatar Tangrila 21 Точки

Така и я реших. Просто ми е интересно защо онзи код не става, какво ли джъджа дава като грешка

0