flex中调用这样顺序正常:
so.IsLogin(true)                           //注意这三行的顺序,不这样就出错
so.get_materialtype()                   //注意这三行的顺序,不这样就出错
so.get_templatetype(1,1)           //注意这三行的顺序,不这样就出错这样顺序也正常
so.IsLogin(true)
so.get_templatetype(1,1)
so.get_materialtype()         //不含 require('D:/EmpireServer/ecshop/amfphp-2.1.1/Amfphp/Services/BaseAttribute.php');的函数这样顺序也正常
so.get_templatetype(1,1)
so.IsLogin(true)
so.get_materialtype()       //不含 require('D:/EmpireServer/ecshop/amfphp-2.1.1/Amfphp/Services/BaseAttribute.php');的函数这样就出错
so.get_materialtype()        //不含 require('D:/EmpireServer/ecshop/amfphp-2.1.1/Amfphp/Services/BaseAttribute.php');的函数
so.get_templatetype(1,1)
so.IsLogin(true) 

解决方案 »

  1.   

    环境:php5.3.27 
    amf 2.1.1
    flex 4.6
    mysql 5.0
      

  2.   

    你的 BaseAttribute.php 文件中是一个类定义
    重复加载是会出错的!
    require('D:/EmpireServer/ecshop/amfphp-2.1.1/Amfphp/Services/BaseAttribute.php');
    应放在外面,不能放在方法里
      

  3.   


    改成这样正常了,谢谢版主!<?php
    require('D:/EmpireServer/ecshop/amfphp-2.1.1/Amfphp/Services/BaseAttribute.php');
    class edit_GetMaterialType_sq
    {
    function IsLogin($isadmin)
    {
        $reLogin = array();
        $reLogin[] = 'IsLogin($isadmin)';
        return $reLogin;
    }
     
    function get_materialtype()
    {
        $g = array();
        $g[] = 'materialtype()' ;
        return $g;
    }
     
    function get_templatetype($templateid,$userid)
    {
        $p = array();
        $p[] = 'get_templatetype' ;
        return $p ;
    }
    }
    ?>