获取消息聊天ID电报

时间:2016-07-24 13:44:30

标签: php codeigniter

问题

您好我想通过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
                                    )

                            )

                    )

            )

    )

1 个答案:

答案 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可以帮助您。

文档: