在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

我在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 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_双箭头)
我修复了它,谢谢:)