최근에 C++ 공부하다가 함수 포인터를 봤는데 예전에 ASP에 이런 함수 포인터가 있을까 해서 바이두에 검색해 봤는데 이 부분에 대한 소개가 별로 없더군요. VBScript 매뉴얼을 찾아보았으나 찾을 수 없어서 실망했고 GetRef 함수에 대한 설명을 매뉴얼에 인용했습니다.
이벤트가 바인딩될 수 있는 프로시저에 대한 참조를 반환합니다.
object.eventname = GetRef(procname) 설정
매개변수
물체
필수의. 이벤트와 연결된 개체의 이름입니다.
이벤트 이름
필수의. 함수에 바인딩될 이벤트의 이름입니다.
이름
필수의. 이 문자열에는 이벤트와 연결된 Sub 또는 Function 프로시저의 이름이 포함됩니다.
설명하다
GetRef 함수를 사용하면 VBScript 프로시저(함수 또는 하위)를 DHTML(동적 HTML) 페이지에서 사용할 수 있는 이벤트와 연결할 수 있습니다. DHTML 개체 모델은 다양한 개체에 대해 사용 가능한 다양한 이벤트에 대한 정보를 제공합니다.
다른 스크립팅 및 프로그래밍 언어에서는 GetRef가 제공하는 기능을 함수 포인터라고 합니다. 즉, 지정된 이벤트가 발생할 때 실행될 프로시저의 주소를 가리킵니다.
다음 예에서는 GetRef 함수의 사용을 보여줍니다.
다음과 같이 코드 코드를 복사합니다.
<스크립트 언어=VBScript>
함수 GetRefTest()
딤 스플래시
스플래시 = GetRefTest 버전 1.0 및 vbCrLf
스플래시 = 스플래시 & Chr(169) & YourCompany 1999
MsgBox 스플래시
기능 종료
Window.Onload = GetRef(GetRefTest) 설정
</SCRIPT>
이는 아마도 이벤트 바인딩에 사용된다는 의미일 것입니다. 저는 ASP의 이벤트에 대해 잘 모르기 때문에 여기에서는 GetRef와 이벤트 간의 관계에 대해 너무 많이 논의하지 않겠습니다. 여기서는 WEB 개발 애플리케이션에서의 GetRef 사용에 대해서만 연구합니다.
PHP에서는 PHP가 포인터를 지원하지 않기 때문에 함수 포인터 기술을 사용할 수 없습니다. PHP는 함수를 변수에 할당할 수 있는 소위 함수 변수를 지원하며 해당 함수는 함수 포인터와 유사합니다.
더 간단한 예:
PHP에서 이 작업을 수행할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
<?php
$funcname = cutstr;
에코 $funcname();
함수 cutstr() {
반환 함수;
}
?>
GetRef를 사용하면 ASP는 위와 유사한 기능을 구현할 수도 있습니다.
<%
희미한 기능 이름
기능 이름 = cutstr
response.Write(getref(funcname))
함수 cutstr()
cutstr = 함수
종료 기능
%>
실제 적용:
뉴스 추가, 삭제, 수정 및 기타 작업과 같은 백그라운드 관리 프로젝트를 동일한 페이지에서 처리할 때 일반적으로 양식에 숨겨진 필드 작업 또는 URL 매개 변수 작업을 삽입하고 어떤 단계를 결정합니다. 작업은 작업 값을 기반으로 합니다. 일반적으로 다음과 같이 작성됩니다.
선택 사례 request.querystring(action)
케이스 추가: '작동할 코드 세그먼트....
Case 수정 : '작동할 코드 세그먼트....
선택 종료
아니면 다른 경우에 사용하세요
함수 변수를 사용하면 코드를 더욱 간결하고 명확하게 만들 수 있습니다. 첨부된 내용은 백그라운드에서 일반적으로 사용되는 작업의 전체 예입니다. 수정, 삭제, 추가하세요.
?action=×××를 사용하여 결과를 테스트할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
<%
명시적인 옵션
희미한 array_action
'법적 모듈 이름
array_action = 배열(목록, 추가, 추가_양식, 수정, 수정_양식, 델)
'산출
response.write(getref(액션))
'매개변수가 올바른지 확인하세요.
함수 동작()
희미한 str : str = request.querystring(action)
액션 = array_action(0)
arr_in(array_action,str)이면 action = str
종료 기능
'조작부분---------
함수 목록()
list = 목록 정보 표시
종료 기능
함수 추가()
add = 추가 작업 수행
종료 기능
함수 add_form()
add_form = 추가 양식 표시
종료 기능
함수 수정()
수정 = 수정 작업 수행
종료 기능
'--------------------------------
'배열에 존재하는지 확인
함수 arr_in(a,v)
arr_in = 거짓
나 어두워
isarray(a)이면
나는 각각에 대해
if i = v then : arr_in = true : 종료 for : end if
다음
종료하면
종료 기능
%>
많은 게시물에서 ASP, PHP, .NET 중 어느 것이 더 나은가요? 개인적으로는 웹사이트의 기능적 원리를 이해하고 나면 무슨 일이 있어도 똑같을 것이라고 생각합니다. 작성하는 데 사용하는 언어가 효율적입니까? 코드가 간결하고 명확합니까? 그렇다면 자신의 수준에 따라 다릅니다. 누구나 토론을 환영합니다!