您好我想通过Codeigniter在电报中获取消息聊天ID。我在编程方面不太好。我想我没有正确使用数组脚本。
不能在第20行使用stdClass类型的对象作为数组 C:\ OpenServer \ domains \ localhost \ admin \ application \ controllers \ lifeChange.php
## PHP ##
$chat_id = $update['result'][0]['message']['chat']['id'];
stdClass Object
(
[ok] => 1
[result] => Array
(
[0] => stdClass Object
(
[update_id] => 188680055
[message] => stdClass Object
(
[message_id] => 9
[from] => stdClass Object
(
[id] => [number id]
[first_name] => $ravshan
[last_name] => = array(' ');
[username] => antiSmoke
)
[chat] => stdClass Object
(
[id] => [number id]
[first_name] => $ravshan
[last_name] => = array(' ');
[username] => antiSmoke
[type] => private
)
[date] => 1469289772
[text] => /start
[entities] => Array
(
[0] => stdClass Object
(
[type] => bot_command
[offset] => 0
[length] => 6
)
)
)
)
)
)
答案 0 :(得分:0)
根据您发布的$update
变量的内容,以下是逐步找到正确语法的方法:
您写道:
$chat_id = $update['result'][0]['message']['chat']['id'];
但是,$ update是一个对象(这是第一行stdClass Object
),因此要访问result
,您必须使用:
$chat_id = $update->result;
result
是一个数组,因此您确实可以通过索引访问它:
$chat_id = $update->result[0];
result[0]
是一个对象:
$chat_id = $update->result[0]->message;
message
是一个对象:
$chat_id = $update->result[0]->message->chat;
chat
是一个对象。以下是您需要的代码行:
$chat_id = $update->result[0]->message->chat->id;
您习惯于操作数组和对象,您将能够非常快速地编写此类代码。您只需要知道要访问的变量的内部结构,var_dump
可以帮助您。
文档: