在php中编写Web服务时出错

时间:2015-07-14 18:45:35

标签: 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 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);
?>  

functions.php

<?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 Parse error:语法错误,意外&#39; =&#39;在第11行的/var/www/html/phpWebService/service.php中

我无法理解这个错误。我该如何解决?

3 个答案:

答案 0 :(得分:2)

HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
^^^^^^^^^^^^^^^^^^---constant

你不能为常数赋值,你只能define()

答案 1 :(得分:1)

问题在于这一行:

HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';

对于PHP,看起来你正试图分配一个常量。添加$以生成变量,或使用define()创建具有该值的常量。

答案 2 :(得分:-2)

检查是否有任何缺失的半冒号或右括号。 通常它会在你遗漏某些东西之后引用行号中的错误。