xmlrpc Warning: xmlrpc_is_fault() expects parameter 1 to be array的处理

本文介绍了如何处理PHP中XML-RPC扩展产生的警告信息,并提供了一个示例代码来演示如何使用func_get_args()等函数获取传入函数的所有参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP手册当中提示:

Warning

This function is EXPERIMENTAL. The behaviour of this function, its name, and surrounding documentation may change without notice in a future release of PHP. This function should be used at your own risk.

此函数是实验性的。 此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本扩展风险自担 。

此函数接受xmlrpc_decode($file)的结果。

 

if (is_array($response) && xmlrpc_is_fault($response)) {

}

如此处理,便不会再出现Warning: xmlrpc_is_fault() expects parameter 1 to be array...的警告信息了。

另外,记住几个函数

func_get_args():获取传入函数的所有参数

func_num_args():返回传入函数的参数的个数

func_get_arg():获取传入参数中的某个具体函数,其下标为传入参数的索引。

示例如下:

<?php
function foo() {
	$args = func_get_args();    
	var_dump($args);
	$argsnum = func_num_args();
	var_dump($argsnum);
	if ($argsnum >= 1) {
		var_dump(func_get_arg(0));
	}
}   
foo();
foo(array(array('a')));
foo('a1', 'a2', 'a3');

?>


 

 

namespace ucar_solution { Solution::Solution(ros::NodeHandle &nh) { ros::NodeHandle navi_nh(nh, "navigation"); //ros::NodeHandle speed_nh(nh, "speed"); mbf_client_ = std::make_unique<actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction>>("move_base", true); if (!mbf_client_->waitForServer(ros::Duration(10.0))) { ROS_INFO("Waiting for the move_base action server to come up"); } target_sub = nh.subscribe("/target_msg", 100, &Solution::solutionCallback, this); start_sub = nh.subscribe("/ucar/is_start", 100, &Solution::startCallback, this); cmd_pub = nh.advertise<geometry_msgs::Twist>("/cmd_vel", 50); scan_sub_ = nh.subscribe("/scan", 1000, &Solution::scanCallback, this); rpy_sub_ = nh.subscribe("/rpy_topic", 100, &Solution::rpyCallback, this); scan_mode_pub_ = nh.advertise<std_msgs::Int32>("/scan_mode", 10); scan_start_pub_ = nh.advertise<std_msgs::Bool>("/scan_start", 10); detect_start_pub_ = nh.advertise<std_msgs::Bool>("/detect_start", 10); follow_start_pub_ = nh.advertise<std_msgs::Bool>("/follow_start", 10); pidInit(0.01, 0.003, 0.005, 960,-0.3); XmlRpc::XmlRpcValue patrol_list; navi_nh.getParam("speed", MAX_LIMIT); navi_nh.getParam("goal_list", patrol_list); for (int i = 0; i < patrol_list.size(); ++i) { ROS_ASSERT(patrol_list[i].getType() == XmlRpc::XmlRpcValue::TypeArray); geometry_msgs::PoseStamped pose_stamped; pose_stamped.header.frame_id = "map"; ROS_ASSERT(patrol_list[i][0].getType() == XmlRpc::XmlRpcValue::TypeDouble and patrol_list[i][1].getType() == XmlRpc::XmlRpcValue::TypeDouble and patrol_list[i][2].getType() == XmlRpc::XmlRpcValue::TypeDouble); pose_stamped.pose.position.x = static_cast<double>(patrol_list[i][0]); pose_stamped.pose.posit
最新发布
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值