php类函数作为参数与$ this->

时间:2016-04-19 09:44:09

标签: php web-services class

我有一个带有许多私有函数的webservice类。我有一个main函数,它根据Web服务调用的第一个参数决定调用哪个函数。

$actions = [
        "CHECK_LOGIN"     => "checkLogin" 
    ,   "CHECK_FB"        => "checkFB"  
    ,   "GET_DETAILS"     => "getDetails" 
    ,   "SAVE_DETAILS"    => "saveDetails" 
    ,   "CHANGE_PWD"      => "saveDetails" 
    ,   "SEND_ECODE"      => "sendEmailCode"
]

因此,根据传递的参数很容易找到要调用的函数:

if (!array_key_exists($action, $actions))
  $rep = ["status" => STATUS_ERROR, "errMsg" => "Action '$action' unknown"];
else {
   $method = $actions[$action];
   $rep = $method($req);
}

我的问题是我无法调用“$ method”(例如“checkFB”),我需要调用$ this->方法(即“$ this-> checkFB”) 我怎么把$ this->在$ actions数组中找到的函数名前面

1 个答案:

答案 0 :(得分:1)

你可以这样做:

<asp:GridView ID="grdTaskDataCat1" OnRowCommand="grdTaskDataCat1_RowCommand"
              OnSorting="grdTaskDataCat1_Sorting" AutoGenerateColumns="false" 
              ShowHeaderWhenEmpty="true" AllowSorting="true" Width="1800px" 
              DataKeyNames="ID" runat="server" 
              OnRowDataBound="grdTaskDataCat1_RowDataBound">
   <Columns>
     <asp:TemplateField HeaderText="Sr No" Visible="false">
        <ItemTemplate>
          <asp:TextBox ID="txtId" Visible="false" ReadOnly Style="width: 30%" Text='<%# Bind("ID")%>' runat="server"></asp:TextBox>
        </ItemTemplate>
        <%-- <ItemStyle Width="3%" />--%>
     </asp:TemplateField>
     <asp:TemplateField HeaderText="Sr No" Visible="true" ItemStyle-Width="20px">
       <ItemTemplate>
         <asp:Label ID="lblSerialNoCat1" runat="server"></asp:Label>
       </ItemTemplate>
     </asp:TemplateField>