在php中编写web服务时出错
我在linux机器上用php编写了一个简单的Web服务。下面是代码:在php中编写web服务时出错,php,web-services,soap,Php,Web Services,Soap,我在linux机器上用php编写了一个简单的Web服务。下面是代码: service.php <?php require 'lib/nusoap.php'; include 'functions.php'; $server=new nusoap_server(); $server->configureWSDL("demo"."urn:demo"); $server->register( "price", //name of
service.php
<?php
require 'lib/nusoap.php';
include 'functions.php';
$server=new nusoap_server();
$server->configureWSDL("demo"."urn:demo");
$server->register(
"price", //name of the function
array("name"=>'xsd:string'), //inputs
array("return"=>'xsd:inter') //outputs
);
HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
<?php
function price($name){
$details=>array(
'abc'=>123,
'qwe'=>34
);
foreach ($details as $n => $p) {
if ($name==$n) {
$price=$p;
}
}
return $price;
}
/*function countname(){
}*/
?>
但我犯了这样的错误:
[Wed Jul 15 00:10:54.675740 2015][:error][pid 1564][client 127.0.0.1:40356]PHP解析错误:语法错误,第11行的/var/www/html/phpWebService/service.PHP中出现意外的“=”
我无法理解这个错误。我怎样才能修好它
HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
^^^^^^^^^^^^^^^^^^---constant
您不能为常数赋值,只能定义它们。问题是这一行:
HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
对于PHP来说,它看起来像是在尝试分配一个常量。添加一个
$
来生成变量,或者使用定义()
来创建一个具有该值的常量。检查是否缺少分号或右括号。
通常,它会在你错过一些东西之后引用行号中的错误。我这样更改代码:
define(“HTTP”,“HTTP_RAW_POST_DATA”);常量(“HTTP”)=isset($HTTP\U原始\U后期数据)$HTTP_原始_POST_数据:“”代码>我得到了这个错误:PHP致命错误:无法在第12行的/var/www/html/phpWebService/service.PHP的写上下文中使用函数返回值您正在定义一个常量HTTP
,字符串值为“HTTP\u RAW\u POST\u DATA”。constant()
函数用于以编程方式获取常量值,而不是设置它们。我想你的意思是:define('HTTP\u RAW\u POST\u DATA',isset($HTTP\u RAW\u POST\u DATA)?$HTTP\u RAW\u POST\u DATA:“”)代码>是的,对。我纠正了我的错误,运行了它,得到了另一个错误:PHP解析错误:语法错误,第4行/var/www/html/phpWebService/functions.PHP中的意外“=>”(T_双箭头)
我修复了它,谢谢:)