Tenho tentado descobrir como fazer isso, mas não tenho certeza de como.
Aqui está um exemplo do que estou tentando fazer:
class test {
public newTest(){
function bigTest(){
//Big Test Here
}
function smallTest(){
//Small Test Here
}
}
public scoreTest(){
//Scoring code here;
}
}
Aqui está a parte com a qual estou tendo problemas. Como chamo bigTest ()?
Respostas:
Tente este:
fonte
function()
partir de outra página .php dentro de uma função de classe e, em seguida, obter resultados dentro da função de classe? por exemplo, eu tenho uma consulta que seleciona tudo de uma tabela e retorna um conjunto de resultados buscar todos. É possível percorrer esse conjunto de resultados dentro de uma função de classes? por exemploclass query{ public function show(){ getResults(); while($stmt->fetchCollumn()){ ECHO RESULTS HERE }
O exemplo que você forneceu não é um PHP válido e tem alguns problemas:
não é uma declaração de função apropriada - você precisa declarar funções com a palavra-chave 'function'.
A sintaxe deve ser:
Em segundo lugar, envolver as funções bigTest () e smallTest () em função pública () {} não as torna privadas - você deve usar a palavra-chave privada em ambas individualmente:
Além disso, é convenção colocar nomes de classe em letras maiúsculas em declarações de classe ('Teste').
Espero que ajude.
fonte
fonte
Acho que você está procurando por algo parecido com este.
fonte
Você precisa chamar
newTest
para tornar as funções declaradas dentro desse método “visíveis” (consulte Funções dentro das funções ). Mas isso são apenas funções normais e nenhum método.fonte
Para ter uma "função dentro de uma função", se entendi o que você está perguntando, você precisa do PHP 5.3, onde pode aproveitar o novo recurso Closure.
Então você poderia ter:
fonte
Para chamar qualquer método de um objeto instanciado de uma classe (com a instrução new), você precisa "apontar" para ele. Do lado de fora, basta usar o recurso criado pela nova instrução. Dentro de qualquer objeto PHP criado por new, salva o mesmo recurso na variável $ this. Portanto, dentro de uma classe, você DEVE apontar para o método por $ this. Em sua classe, para chamar
smallTest
de dentro da classe, você deve dizer ao PHP qual de todos os objetos criados pela nova instrução você deseja executar, basta escrever:fonte
Exemplo 1
exemplo 2
fonte
Você também pode usar em
self::CONST
vez de$this->CONST
se quiser chamar uma variável estática ou função da classe atual.fonte
resultado :
f2 run f1 run
fonte