Jump to content
Sign in to follow this  
simenss

Å kjøre en funksjon innenfor en funksjon

Recommended Posts

Noe som kan si meg hva som er galt med funksjonen(e) under? Den skriver ikke ut 12345.

 

<?php
function foo($data) {
function foo2($data2) {
 $var['name'] = $data2;
 return($var);
}

foo2($data);
print($var['name']);
}

foo('12345');
?>

Edited by simenss

Share this post


Link to post
Hei, hvorfor definerer du foo2 inne i foo? Har ikke programmert mye php men det ser ikke riktig ut.. Det fungerer vel om du definerer foo2 utenfor foo

5281132[/snapback]

 

Det er bare et eksempel. foo2() skal beregne dimensjonene på en tekst når foo() kjøres.

Share this post


Link to post

Fikk dette til å virke lokalt vertfall

<?php
function foo($data) {
function foo2($data2) {
$var['name'] = $data2;
return($var);
}

$test = foo2($data);
print $test[name];
}

foo('12345');
?>

 

Edit:

Puttet det inn i fancy kode boks

Edited by Scix

Share this post


Link to post

Du kan fint definere funksjoner innenfor en annen funksjon, men jeg tror du ikke helt har forstått hvordan det fungerer, og hva du egentlig oppnår med det ;)

 

Det som skjer når du definerer en funksjon innenfor en annen er at den "innerste" funksjonen først blir deklarert (gjort tilgjengelig) når den ytterste funksjonen er kalt.

 

function foo() {

function foo2() {
return 1;
}

echo foo2();
}

 

Her vil følgende fungere

foo();
echo foo2();

 

Mens følgende ikke vil fungere

echo foo2();

 

Det er (så vidt jeg kan komme på) ingen gode grunner for å deklarere en funksjon innenfor en annen funksjon. Alt du oppnår er rot. (Hadde skopet for funksjon blitt lokalt for funksjonen den er deklarert i, så hadde det iblant vært nyttig).

 

Hvorfor ønsker du å gjøre dette?

Share this post


Link to post

Er det ikke slike ting man bruker klasser til? Er ikke helt inne på det med klasser, men mener det er godt egnet for å samle funksjoner sammen ;)

Share this post


Link to post
Er det ikke slike ting man bruker klasser til? Er ikke helt inne på det med klasser, men mener det er godt egnet for å samle funksjoner sammen ;)

5284290[/snapback]

 

Nei, overhodet ikke.

 

Objekter representerer en enhet, som et objekt fra virkeligheten, med diverse metoder og attributter.

Altså er ikke et objekt en slags kontainer for ymse funksjoner du tilfeldigvis bruker i en sammenheng.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...