[PHP] Functie ..($t = $t1) werkt niet.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 18-09 16:03
Ik wil een var meegeven aan een functie, maar als deze niet meegegeven wordt dan moet het een andere var worden. Voorbeeldje hieronder:
PHP:
1
2
3
4
5
6
7
<?
  $test = 4;
  function test ($test1 = $test){
    echo $test1;
  }
  test($test);
?>

Ik krijg echter een foutmelding:
Parse error: parse error, unexpected T_VARIABLE in I:\inetpub\www-public\cms\www\test.php on line 11 (regel 11 = function test.....)

Wel werkt het als je een vaste waarde als alternatief geeft ipv een var, zoals in het voorbeeld hieronder:
PHP:
1
2
3
4
5
6
7
<?
  $test = 4;
  function test ($test1 = "23"){
    echo $test1;
  }
  test($test);
?>


Ik heb al gezocht op php.net: http://nl2.php.net/manual...ns.variable-functions.php
Hier kan ik echter ook geen voorbeeld vinden met een var als alternatief. Is dit niet mogelijk of moet het op een andere manier?

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

'$test' in de eerste functie?
overigens zou ik ook ff andere namen nemen
ik weet niet of php over een functie test en een variabele test valt

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • Empathy
  • Registratie: Juni 2000
  • Laatst online: 16-09 12:38

Empathy

Extreme Audio

PHP:
1
2
3
4
5
$test = 4;
function test ($test1 = '') {
    global $test;
    if ($test1 == '') $test1 = $test;
}


zoiets?

[ Voor 11% gewijzigd door Empathy op 26-08-2003 14:12 ]


Acties:
  • 0 Henk 'm!

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 21:14

Skinny

DIRECT!

volgens mij is dit niet mogelijk. Check gewoon of je doorgegeven variabele een geldige waarde bevat en anders geef je hem er een (vaste waarde of een andere var).

SIZE does matter.
"You're go at throttle up!"


Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
Hint: globals.

* supakeen moet sneller worden :D

[ Voor 88% gewijzigd door supakeen op 26-08-2003 14:13 ]


Acties:
  • 0 Henk 'm!

  • Empathy
  • Registratie: Juni 2000
  • Laatst online: 16-09 12:38

Empathy

Extreme Audio

zmn schreef op 26 August 2003 @ 14:13:
Hint: globals.

* Empathy moet sneller worden :D
jouw voorbeeld gaat niet werken, wanneer je bij jouw functie geen argument mee geeft, krijg je errors :P

Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 18-09 16:03
D2k schreef op 26 augustus 2003 @ 14:12:
'$test' in de eerste functie?
overigens zou ik ook ff andere namen nemen
ik weet niet of php over een functie test en een variabele test valt
Andere namen helpt niet en als je '$test' neemt dan pakt ie letterlijk $test en dus niet wat er in die var zit.

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

dan zit je aan globals vast
globals :r

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18-09 16:51
Waarom wil je dit op deze manier oplossen? Meestal wordt $x=false gebruikt. Dan kun je eenvoudig controleren of de var is gegeven.

[ Voor 81% gewijzigd door djluc op 26-08-2003 14:17 ]


Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 22:04
Waarom zou je dat willen? Persoonlijk vind ik het een behoorlijk ranzige constructie. Default argumenten zijn ook niet bedoeld voor dit soort constructies.

Ik zou zeggen ga je eens verdiepen in classes, want daarmee kan je je probleem vast wel op een gestructureerde wijze oplossen.

It’s nice to be important but it’s more important to be nice


Acties:
  • 0 Henk 'm!

  • Empathy
  • Registratie: Juni 2000
  • Laatst online: 16-09 12:38

Empathy

Extreme Audio

Bever schreef op 26 August 2003 @ 14:15:
[...]

Andere namen helpt niet en als je '$test' neemt dan pakt ie letterlijk $test en dus niet wat er in die var zit.
't kan gewoon echt niet op die manier :)

Acties:
  • 0 Henk 'm!

  • Empathy
  • Registratie: Juni 2000
  • Laatst online: 16-09 12:38

Empathy

Extreme Audio

D2k schreef op 26 August 2003 @ 14:16:
dan zit je aan globals vast
globals :r
wat is er mis met globals?

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

djluc schreef op 26 August 2003 @ 14:16:
Bedoel je niet == ipv =?
ja ga jij er ff een vergelijking van maken....

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18-09 16:51
Ik zag mijn fout ook pas net 8)7 Was al aan het editten toen jij postte, gaat hard in dit topic.

[ Voor 96% gewijzigd door djluc op 26-08-2003 14:23 ]


Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 18-09 16:03
JonkieXL schreef op 26 August 2003 @ 14:17:
Waarom zou je dat willen? Persoonlijk vind ik het een behoorlijk ranzige constructie. Default argumenten zijn ook niet bedoeld voor dit soort constructies.

Ik zou zeggen ga je eens verdiepen in classes, want daarmee kan je je probleem vast wel op een gestructureerde wijze oplossen.
die functie zit al in een class ;) (niet deze test functie maar waar het echt om gaat).

Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 18-09 16:03
Empathy schreef op 26 August 2003 @ 14:17:
[...]


't kan gewoon echt niet op die manier :)
das zeer jammer :S

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18-09 16:51
Misschien dan zoiets:
PHP:
1
2
3
4
5
6
7
8
function a($arg=false){
    $x='waarde';
    if(!$arg){
        b($x);
    }else{
        b($arg);
    }
}

Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 18-09 16:03
djluc schreef op 26 August 2003 @ 14:23:
Misschien dan zoiets:
PHP:
1
2
3
4
5
6
7
8
function a($arg=false){
    $x='waarde';
    if(!$arg){
        b($x);
    }else{
        b($arg);
    }
}
nee gaat helaas ook niet lukken, die waarde moet van te voren al bepaald zijn.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18-09 16:51
Je kunt functie a toch gewoon al eerder declareren?

Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 18-09 16:03
djluc schreef op 26 August 2003 @ 14:25:
Je kunt functie a toch gewoon al eerder declareren?
maar daar heb ik niks aan.
ik los het wel anders op, dat ie gewoon altijd een waarde mee geeft.

iig bedankt voor het helpen zoeken naar een oplossing :)

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Probeer het met een constant

like this
PHP:
1
2
3
4
5
6
7
8
9
10
error_reporting(E_ALL);

$a = "test2";
define ( "_DEFAULT" , $a );

function test ( $test = _DEFAULT ) {
    echo $test;
}

test();

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Kun je niet dit gebruiken:
PHP:
1
2
3
4
5
6
7
8
<?
  $test = 4;
  function test ($test1, $test){
    if (!isset($test1)) $test1 = $test;
    echo $test1;
  }
  test($test, 5);
?> 

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$andereVariable = 'aap';

  function test ($test=false,$else){
   if (!$test)
      echo $else;
   else
      echo $test;
  }
  test($test,$andereVariable);
?>

misschien???

Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 18-09 16:03
ik zie hier nog een paar handige oplossingen, ik heb het nu als volgt:
PHP:
1
2
  function writeToDatabase($contentId = '') {
    $contentId = ($contentId == '') ? $this->_contentId : $contentId;

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Spider.007 schreef op 26 augustus 2003 @ 14:30:
Kun je niet dit gebruiken:
PHP:
1
2
3
4
5
6
7
8
<?
  $test = 4;
  function test ($test1, $test){
    if (!isset($test1)) $test1 = $test;
    echo $test1;
  }
  test($test, 5);
?> 
En nu proberen met error_reporting( E_ALL ) :Y)

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
en dit?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

class testclass{

var $test1 = 4;

function test($test = ""){

        if(empty($test)){
                $test = $this->test1;
        }
        echo $test;
}
}

$class = new testclass;
$class->test();

?>

Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 18-09 16:03
PrisonerOfPain schreef op 26 August 2003 @ 14:33:
en dit?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

class testclass{

var $test1 = 4;

function test($test = ""){

        if(empty($test)){
                $test = $this->test1;
        }
        echo $test;
}
}

$class = new testclass;
$class->test();

?>
dat gebruik ik nou dus ongeveer ja :)

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
LuCarD schreef op 26 August 2003 @ 14:33:
[...]


En nu proberen met error_reporting( E_ALL ) :Y)
hij geeft hier geen fout hoor (php 4.3.3) :)

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

PrisonerOfPain schreef op 26 August 2003 @ 14:37:
[...]


hij geeft hier geen fout hoor (php 4.3.3) :)
En als $test niet bestaat geeft hij wel een error.... :) (8>

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
LuCarD schreef op 26 augustus 2003 @ 14:38:
[...]


En als $test niet bestaat geeft hij wel een error.... :) (8>
.

en als je een mysql query doet terwijl mysql uitstaat ook, ik zie het punt niet :)
Pagina: 1