Хочу сделать сложную структуру.
[Да потом будет база SQL но проблема есть и я хочу понять в чем ошибка.
Вдруг потом ещё раз с ней встречусь]
Тут у меня есть небольшой JSON файл выступающий в роли базы.
И я хочу обратиться к определенным данным лежащим там.
Но встретился с проблемой. Хочу вызвать объект по имени, а выходит Шиш [NULL].
<?php
class Player {
public function take($id){
$config = json_decode(file_get_contents($id.'.json'));
$out='';
foreach((array)$config->Player as $key => $value){
$out .= '<input type="button" value="'.$key.'" onclick="nextLevel(\''.$key.'\', \'agReSortPosition\')">'.$key.'</input>';
}
return $out;
}
public function takeRebudTest($id){
$config = json_decode(file_get_contents($id['1'].'.json'));
$out[]= $config->Player->Admin;
$out[]= $id;
foreach((array)$config->Player as $key => $value){
$out[]=$key;
$out[]=$value;
$out[]=$id['1'];
if ($key === $id['1']){$out['mess'] = 1;}
}
return $out;
}
}
$post = json_decode(file_get_contents('php://input'));
$route = explode('_', $post->ident);
$class = array_shift($route);
$method = mb_strtolower(array_shift($route));
if(is_array($route)) {
foreach($route as $part){
$method .= ucfirst($part);
}
}
if(class_exists($class)){$factory = new $class;}
if(isset($factory) && is_object($factory) && method_exists($factory, $method) === true){
$out = $factory->$method($post->metod);
} else {
$out = ['method doesnt find'];
}
echo json_encode($out);
die();
?>
var url='test.php';
function i(c) {return document.getElementById(c);}
function k(c) {return document.getElementsByClassName(c)[0];}
function Start() {
fetch(url, {
method: 'POST',
body: JSON.stringify({"ident" : "Player_take", "metod":"agReSortPosition"}),
}).then(response => response.json())
.then((data) => i('Select_view').innerHTML = data)
}
function nextLevel($s_2, $s_1){
fetch(url, {
method: 'POST',
body: JSON.stringify({"ident" : "Player_take_rebud_Test", "metod" : [$s_2, $s_1]}),
}).then(response => response.json())
.then((data) => i('Select_view').innerHTML = data)
}
Это JSON agReSortPosition.json
{
"Player":{
"Admin":[ "28", "34"],
"Tester": ["37","74"],
"User": ["91","01"],
"Dezigner": ["45","17"]
}
}
В функции takeRebudTest я хочу обращаться к $config->Player->$id['0']; и получать ["28", "34"] но я получаю Null.
Я проверяю $key === $id['0'] но они одинаковые. В devtools я получаю:
{0: ["28", "34"], 1: null, 2: ["Admin", "agReSortPosition"], 3: "Admin", 4: ["28", "34"], 5: "Admin",…}
0: ["28", "34"]
1: null
2: ["Admin", "agReSortPosition"]
3: "Admin"
4: ["28", "34"]
5: "Admin"
6: "Tester"
7: ["37", "74"]
8: "Admin"
9: "User"
10: ["91", "01"]
11: "Admin"
12: "Dezigner"
13: ["45", "17"]
14: "Admin"
mess: 1
Это скорее всего простой вопрос, но простите я пока безграмотен, и найти ответ на этот вопрос я пока не смог.
Заранее Благодарен.