Предаю массив в конструктор, но в переменные попадаю некоректные значения

136
05 февраля 2021, 18:10

Конструктор:

public function __construct($row)
{
    $this->vkid = $row[0];
    $this->vkname = $row[1];
    $this->cases = $row[2];
    $this->firstlogin = $row[3];
    $this->lastlogin = $row[4];
    $this->money = $row[5];
}

Создаю объект:

$sender = new Player($akk);

И вот var_dump'ы:

var_dump($akk);
array(6) { 
    [0]=> string(9) "242369682" 
    [1]=> string(8) "Марк" 
    [2]=> string(1) "0" 
    [3]=> string(10) "1560183285" 
    [4]=> string(10) "1560183285" 
    [5]=> string(1) "0" 
}
var_dump($sender);
object(Player)#3 (6) { 
    ["vkid":"Player":private]=> string(1) "1" 
    ["vkname":"Player":private]=> string(1) "2" 
    ["cases":"Player":private]=> string(1) "1" 
    ["firstlogin":"Player":private]=> string(0) "" 
    ["lastlogin":"Player":private]=> string(0) "" 
    ["money":"Player":private]=> string(0) "" 
}

Почему заносятся некорректные значения и как это исправить?

Answer 1
<?php
class Player{
public function __construct($row)
    {
        $this->vkid = $row[0];
        $this->vkname = $row[1];
        $this->cases = $row[2];
        $this->firstlogin = $row[3];
        $this->lastlogin = $row[4];
        $this->money = $row[5];
    }
}
$arr = ["242369682","Марк","0","1560183285","1560183285","0"];
$a = new Player($arr);
var_dump($a);

Ответ:

object(Player)#1 (6) {
  ["vkid"]=>
  string(9) "242369682"
  ["vkname"]=>
  string(8) "Марк"
  ["cases"]=>
  string(1) "0"
  ["firstlogin"]=>
  string(10) "1560183285"
  ["lastlogin"]=>
  string(10) "1560183285"
  ["money"]=>
  string(1) "0"
}

попробуйте очистить класс ото всего, и самое главное при диагностике в конструкторе выведите $row а лучше используйте при диагностике ide + x_debuger

READ ALSO
Как отсортировать foreach

Как отсортировать foreach

Есть список который формирует foreach

176
Php 7.1 preg_replace заменяет указанные символы [дубликат]

Php 7.1 preg_replace заменяет указанные символы [дубликат]

Задаю вот такой код в PHP чтобы убрал все кроме букв и цифр, а в инпуте пишу например Геральт ++[** а вместо того чтобы вывести просто **Геральт...

109
Родительское и дочерние окна

Родительское и дочерние окна

у меня есть MVC система на PHPЗа redirect отвечает отдельный контроллер, условно RedirectController

98