ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 微信菜单项基类 Menu **目录 (Table of Contents)** [TOC] ## 类基本信息 **类简要描述:** - 用于首次接入微信公众号时的服务器验证 **类名字空间:** - endor/wechat/menu/ **类成员变量说明:** |成员变量|类型|访问修饰|说明 |:---- |:---|:----- |----- | |_name| string | protected | 菜单名字| |_type | string | protected | 菜单类型,目前支持 click,view,miniprogram| |_media_id| string | protected | 调用新增永久素材接口返回的合法media_id| |_children| Object(Menu)| protected | 菜单对象数组 | ## 类成员函数/方法 ### __construct($name) + 参数列表: |参数名|类型|必填项|说明 |:---- |:---|:----- |----- | |$name| string | 是 | 菜单项名字 | + 返回值: `无` + 函数说明: `构造函数` ### getName(); + 参数列表: `无` + 返回值: `string 返回菜单名字` + 函数说明: `获取微信菜单名字` ### getType(); + 参数列表: `无` + 返回值: `string 返回菜单类型` + 函数说明: `获取微信菜单的类型,当前不提供setType接口,不同类型之间的菜单 通过不同子类来实现 ### setMediaId($media_id) + 参数列表: |参数名|类型|必填项|说明 |:---- |:---|:----- |----- | |$media_id| string | 是 | 调用新增永久素材接口返回的合法media_id | + 返回值: `string 返回菜单类型` ### getMediaId() + 参数列表: `无` + 返回值: `string 返回Media_id` + 函数说明: 获取菜单绑定的media_id值 ### addChild(Menu $menuItem) + 参数列表: |参数名|类型|必填项|说明 |:---- |:---|:----- |----- | |$menuItem| Object (Menu) | 是 | 添加一个二级菜单 | + 返回值: `返回当前的操作对象` + 函数说明: `给当前菜单添加一个子菜单项` ### getChildByName($name) + 参数列表: |参数名|类型|必填项|说明 |:---- |:---|:----- |----- | |$name| string | 是 | 根据name寻找子菜单 | + 返回值: `mixed (object|null)` + 函数说明: `根据name寻找子菜单项实例,如果找到,返回该子菜单对象的实例,否则返回null` + 函数示例 ```PHP $fristMenu = new ClickMenu("团购"); // 添加 团购简介 和 团购预约 二级菜单 $fristMenu->addChild(new ClickMenu("团购简介","groupbuy info")) ->addChild(new ViewMenu("团购预约","https://github.com/DarthAhsoka/Endor-Wechat")); $markItemMenu = $fristMenu->getChildByName("团购预约"); if(isset($markItemMenu) { $markItemMenu->setUrl("https://github.com/DarthAhsoka/Endor-Wechat"); } ``` ### getChlildren() + 参数列表: `无` + 返回值: `array ` + 函数说明: ` 返回当前菜单下的所有子菜单` ### getChildrenLength() + 参数列表: `无` + 返回值: `int` + 函数说明: ` 返回当前菜单下的子菜单个数` ### hasChildren() + 参数列表: `无` + 返回值: `boolean` + 函数说明: ` 判断当前菜单下是否有子菜单,返回true为有子菜单,否则没有`