[php] $var buiten en binnen function gebruiken

Pagina: 1
Acties:

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 14-09 13:52
Hoi,
Kan mischien iemand mij vertellen hoe als ik $var buiten function aanmaak ook binnen de function kan gebruiken?

  • Johannes
  • Registratie: Juni 2000
  • Laatst online: 14-09 23:09
Ja, binnen je function global $var neerzetten of 'm gewoon doorpassen naar de functie want globals zijn lelijk en verwarrend(IMO). Voor de rest: The Manual

Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

[verwijderd]

edit: te gewelddadig.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Johannes
  • Registratie: Juni 2000
  • Laatst online: 14-09 23:09
Op vrijdag 14 december 2001 17:02 schreef dusty het volgende:
[verwijderd]

edit: te gewelddadig.
Was je weer eens niet lief voor de newbie usertjes? :P

Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op vrijdag 14 december 2001 17:05 schreef Taradino het volgende:
[..]
Was je weer eens niet lief voor de newbie usertjes? :P
Bij nader inzien was ik "iets" te hard. Maar wel weer een fijne naam op mijn ignore lijst :)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
onnodige $globals zijn voor mietjes, om maar eens een discussie onderwerp aan te werpen wat we de afgelopen weken niet hebben gedaan ;)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 14 december 2001 16:56 schreef Martink het volgende:
Kan mischien iemand mij vertellen hoe als ik $var buiten function aanmaak ook binnen de function kan gebruiken?
Meegeven als variabele natuurlijk...

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Mooi:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
$style = "blaat";
echo showHtmlSubmit($style);

function showHtmlSubmit( $style = FALSE ) 
{
   if($style)
   {
     $strHtml = sprintf("<INPUT type =\"submit\" style=\"%s\">", $style);
    }else{
     $strHtml = sprintf("<INPUT type =\"submit\">");
    }
    return($strHtml);
}

Minder mooi :P
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$style = "blaat";
echo showHtmlSubmit($style);

function showHtmlSubmit() 
{
   global $style;
   if($style)
   {
     $strHtml = sprintf("<INPUT type =\"submit\" style=\"%s\">", $style);
    }else{
     $strHtml = sprintf("<INPUT type =\"submit\">");
    }
    return($strHtml);
}

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op vrijdag 14 december 2001 21:04 schreef Glimi_ie het volgende:
Mooi:
[...]
Minder mooi :P
[...]
niet alleen minder mooi, maar ook vreselijk lastig om terug te vinden wat er gebeurt.

Je kan nog beter de functie dan zo aanroepen:
doCrap(&$variable); dan enkel de INHOUD meegeven, als je wilt dat de uitkomst (bewerking) globaal beschikbaar wordt.

Klaar voor een nieuwe uitdaging.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:30

Janoz

Moderator Devschuur®

!litemod

mwah. Ik geef niet alles mee. Maar gebruik het wel bij sommige constanten.

vb:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
# errorcodes.inc.php
$RC_DB_QUERYERROR = 0621;
$RC_OK            = 0;

# willekeurige andere include
class EenOfAndere{
  var $status
  //nog een paar
  function EenOfAnderClass($vara,...,$varb){
  GLOBALS
    $RC_DB_QUERYERROR;
    $RC_OK;

    $this->status=$RC_OK;
    //allemaal gedoe
    $db_result = mysql_query($db_query,$db_connection) 
      or $this->status = $RC_DB_QUERYERROR;
    //nogmeer gedoe
  }
  
  function getStatus(){
    return $this->status;
  }
}
?>

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op vrijdag 14 december 2001 21:44 schreef Janoz het volgende:
mwah. Ik geef niet alles mee. Maar gebruik het wel bij sommige constanten.

vb:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
# errorcodes.inc.php
$RC_DB_QUERYERROR = 0621;
$RC_OK            = 0;

# willekeurige andere include
class EenOfAndere{
  var $status
  //nog een paar
  function EenOfAnderClass($vara,...,$varb){
  GLOBALS
    $RC_DB_QUERYERROR;
    $RC_OK;

    $this->status=$RC_OK;
    //allemaal gedoe
    $db_result = mysql_query($db_query,$db_connection) 
      or $this->status = $RC_DB_QUERYERROR;
    //nogmeer gedoe
  }
  
  function getStatus(){
    return $this->status;
  }
}
?>
maak er dan een define van, als ik het zo zie?

Klaar voor een nieuwe uitdaging.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 14 december 2001 21:41 schreef chem het volgende:
Je kan nog beter de functie dan zo aanroepen:
doCrap(&$variable); dan enkel de INHOUD meegeven, als je wilt dat de uitkomst (bewerking) globaal beschikbaar wordt.
Wat vind je van zoiets dan:
PHP:
1
2
3
<?
$oudevar = functie_die_er_iets_mee_doet($oudevar);
?>

Wat natuurlijk lastig is als je meerdere elementen wilt terugkrijgen maar dan kan je nog met array's/lists gaan spelen.

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Toch gebruik ik regelmatig globals. Als ik bijvoorbeeld via een formpje klantgegevens binnenkrijg, en ik heb een klasse cCustomer. Dan doe ik boven aan mijn script:
PHP:
1
2
3
4
5
6
7
8
<?
$klant = new cCustomer;
$klant->getPostData(); // Zet alle data uit het form in de klasse
if ($klant->allRequierdFields()) // Zijn alle vereiste velden ingevuld?
{
  ..
}
?>

Dan vind ik dit persoonlijk makkelijker (en duidelijker) dan dat ik
PHP:
1
2
3
<?
$klant->getPostData($variabele1,$variabele2,$variabele3,$variabele4, .. ,$variabele15);
?>

Zijn jullie het hiermee eens of vinden jullie dat het in zo'n geval toch duidelijker is als je 15 variabelen mee moet geven? ;)

Verwijderd

Ligt aan mij of doen jullie nou zo vervelend moeilijk?
IMHO is dit de enige stijlvolle manier om het voor elkaar te krijgen:
PHP:
1
2
3
4
5
6
7
8
9
<?
$var1 = "aap";

function showtext($var2) {
 echo($var2);
}

showtext($var1);
?>

Dit geeft dus als output 'aap'. Nie moeilijk dacht ik zo :)
Pagina: 1