<?php $funcname = "cutstr"; echo $funcname(); function cutstr() { return "function"; } ?> 有了GetRef,類似上面的功能ASP也可以實現: <% dim funcname funcname = "cutstr" response.Write(getref(funcname)) function cutstr() cutstr = "function" end function %>
實際應用: 在做后臺管理的項目時,比如新聞添加,刪除,修改,等操作在同一個頁面處理,一般我們會在form里面插入一個隱藏域action,或者url參數action,根據action的值來判斷操作哪一步。通常這么寫: select case request.querystring("action") case "add" : '要操作的代碼段.... case "modify" : '要操作的代碼段.... end select 或者使用if else 使用“函數變量”可以使代碼更加簡潔、清晰,附上一個完整的例子,該例是后臺中常用的一種操作。修改、刪除、添加。 可以使用?action=×××來測試結果
復制代碼 代碼如下:
<% option explicit dim array_action '合法的模塊名 array_action = array("list","add","add_form","modify","modify_form","del") '輸出 response.write(getref(action)) '檢驗參數是否合法 function action() dim str : str = request.querystring("action") action = array_action(0) if arr_in(array_action,str) then action = str end function '操作部分---------------------- function list() list = "顯示列表信息" end function function add() add = "執行添加操作" end function function add_form() add_form = "顯示添加表單" end function function modify() modify = "執行修改操作" end function '------------------------------ '檢測是否存在于數組 function arr_in(a,v) arr_in = false dim i if isarray(a) then for each i in a if i = v then : arr_in = true : exit for : end if next end if end function %>