/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Funktion med funktioner
Fra : |-|enning


Dato : 21-03-06 22:41

Jeg har flg. (i strippet udgave)

***
class profile {

   function create(bla bla bla)
   {
      function checkPasswords($1, $2)
      {
      # gør noget
      }
   $this->create->checkPassword("sasf", "ae4");
   }
}

$profile = new profile();
$profile->create("asasf", "asd");

***

Hvordan kalder jeg funktionen "checkPasswords" via funktionen "create"?


--
Henning Horn / www.ricaplaza.dk
Webmaster:
www.migoghenning.dk

 
 
|-|enning (21-03-2006)
Kommentar
Fra : |-|enning


Dato : 21-03-06 22:42

|-|enning skrev:
> Jeg har flg. (i strippet udgave)
>
> ***
> class profile {
>
> function create(bla bla bla)
> {
> function checkPasswords($1, $2)
> {
> # gør noget
> }
> $this->create->checkPassword("sasf", "ae4");
> }
> }
>
> $profile = new profile();
> $profile->create("asasf", "asd");
>
> ***
>
> Hvordan kalder jeg funktionen "checkPasswords" via funktionen "create"?
>
>

Ps. fejlmeddelsen lyder således:

Fatal error: Call to a member function checkPasswords() on a non-object

Martin (21-03-2006)
Kommentar
Fra : Martin


Dato : 21-03-06 23:15

|-|enning wrote:
> |-|enning skrev:
>> Jeg har flg. (i strippet udgave)
>>
>> ***
>> class profile {
>>
>> function create(bla bla bla)
>> {
>> function checkPasswords($1, $2)
>> {
>> # gør noget
>> }
>> $this->create->checkPassword("sasf", "ae4");
>> }
>> }
>>

Jeg ville nok lave den således:
class profile {

function create($bla) {
if($this->checkPassword($bla)) {
// Gør noget
}
}

function checkPasswords($bla) {
if($bla == "ok") return true;
else return false;
}
}




>> $profile = new profile();
>> $profile->create("asasf", "asd");
>>
>> ***
>>
>> Hvordan kalder jeg funktionen "checkPasswords" via funktionen "create"?
>>
>>
>
> Ps. fejlmeddelsen lyder således:
>
> Fatal error: Call to a member function checkPasswords() on a non-object

Kasper Johansen (25-03-2006)
Kommentar
Fra : Kasper Johansen


Dato : 25-03-06 14:08

|-|enning wrote:
> Jeg har flg. (i strippet udgave)
>
> ***
> class profile {
>
> function create(bla bla bla)
> {
> function checkPasswords($1, $2)
> {
> # gør noget
> }
> $this->create->checkPassword("sasf", "ae4");
> }
> }
>
> $profile = new profile();
> $profile->create("asasf", "asd");
>
> ***
>
> Hvordan kalder jeg funktionen "checkPasswords" via funktionen "create"?
>
>

En klasse kan ikke indeholde flere funktioner i flere grader. Den
indeholder kun 1. grad. Derefter vil du være nød til at lade din
funktioner returnere andre objekter (instanser af klasser).

Se f.eks. følgende kodestump:

<?
class klasse_et{
function trala(){
return new klasse_to();
}
}

class klasse_to{
function lala(){
echo "hmm";
}
}

$my_object = klasse_et();
$my_ojbect->trala->lala();
?>


Dette burde meget gerne udskrive "hmm" (hvis jeg ikke er forkert på den) :)

I og med at jeg returnerer en ny klasse_to() i funktionen trala(), så
kan det altså virke som om, at der er funktioner nede i funktionerne,
men sandheden er den, at du faktisk arbejder med flere instanser af klasser.


Håber du kunne bruge det til noget.


--
Med venlig hilsen
Kasper Johansen

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste