Eu estava estudando C++ recentemente e vi ponteiros de função. Como já trabalhei em ASP, me perguntei se existia tal ponteiro de função em ASP. Pesquisei no Baidu e descobri que não havia muita introdução sobre esse aspecto. procurei no manual do VBScript e não consegui encontrar. Fiquei desapontado e encontrei a função GetRef. Citei a descrição da função GetRef no manual.
Retorna uma referência a um procedimento ao qual um evento pode ser vinculado.
Definir object.eventname = GetRef(procname)
parâmetro
objeto
Obrigatório. O nome do objeto associado ao evento.
nome do evento
Obrigatório. O nome do evento a ser associado à função.
nome do processo
Obrigatório. Essa sequência contém o nome do procedimento Sub ou Function associado ao evento.
ilustrar
A função GetRef pode ser utilizada para associar um procedimento VBScript (Function ou Sub) a qualquer evento disponível em uma página DHTML (HTML dinâmico). O modelo de objeto DHTML fornece informações sobre vários eventos disponíveis para diferentes objetos.
Em outras linguagens de script e programação, a funcionalidade fornecida por GetRef é conhecida como ponteiro de função, ou seja, aponta para o endereço de um procedimento a ser executado quando ocorrer um evento especificado.
O exemplo a seguir ilustra o uso da função GetRef:
Copie o código do código da seguinte forma:
<LINGUAGEM DO SCRIPT=VBScript>
Função GetRefTest()
Escurecer respingo
Splash = GetRefTest versão 1.0 e vbCrLf
Splash = Splash & Chr(169) & SuaEmpresa 1999
Mensagem de caixa inicial
Função final
Definir Window.Onload = GetRef(GetRefTest)
</SCRIPT>
Provavelmente significa que ele é usado para vincular eventos. Como não sei muito sobre eventos em ASP, não discutirei muito sobre o relacionamento entre GetRef e eventos aqui. Aqui estudamos apenas o uso de GetRef em aplicações de desenvolvimento WEB.
No PHP, o PHP não suporta ponteiros, portanto a tecnologia de ponteiro de função não pode ser usada. PHP suporta as chamadas variáveis de função, que podem atribuir funções a uma variável, e suas funções são semelhantes aos ponteiros de função.
Exemplo mais simples:
Você pode fazer isso em PHP
Copie o código do código da seguinte forma:
<?php
$funcname = cutstr;
echo $funcnome();
função cortarstr() {
função de retorno;
}
?>
Com GetRef, o ASP também pode implementar funções semelhantes às acima:
<%
dim nome da função
nome da função = cutstr
resposta.Write(getref(funcname))
função cortarstr()
cortarstr = função
função final
%>
Aplicações práticas:
Ao realizar projetos de gerenciamento em segundo plano, como adicionar, excluir, modificar notícias e outras operações são processadas na mesma página. Geralmente, inseriremos uma ação de campo oculto no formulário, ou a ação de parâmetro de URL, e determinaremos qual etapa do. a operação é baseada no valor da ação. Geralmente escrito assim:
selecione o caso request.querystring(action)
case adicionar: 'O segmento de código a ser operado....
case modificar: 'O segmento de código a ser operado....
final selecionar
Ou use if else
O uso de variáveis de função pode tornar o código mais conciso e claro. Em anexo está um exemplo completo, que é uma operação comumente usada em segundo plano. Modifique, exclua, adicione.
Você pode usar ?action=××× para testar os resultados
Copie o código do código da seguinte forma:
<%
opção explícita
esmaecer array_action
'Nome do módulo legal
array_action = array(lista,adicionar,adicionar_formulário,modificar,modificar_formulário,del)
'Saída
resposta.write(getref(ação))
'Verifique se os parâmetros são legais
ação de função()
dim str: str = request.querystring(ação)
ação = array_action(0)
se arr_in(array_action,str) então ação = str
função final
'Parte da operação ----------------------
lista de funções()
list = exibe informações da lista
função final
função adicionar()
add = executa operação de adição
função final
função add_form()
add_form = mostra formulário de adição
função final
função modificar()
modificar = realizar operação de modificação
função final
'--------------------------------
'Verifica se existe no array
função arr_in(a,v)
arr_in = falso
escurecer eu
se ématriz(a) então
para cada i em um
se i = v então: arr_in = true: saída para: fim se
próximo
terminar se
função final
%>
Muitos posts discutem ASP, PHP e .NET Qual deles é melhor, pessoalmente, não importa o que aconteça. linguagem que você usa para escrevê-lo. É eficiente? O código é conciso e claro? Todos são bem-vindos para discutir!