|
| 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
| |
|
|