| 

.NET C# Java Javascript Exception

3
Hallo

Folgender Code:

<?php
$passvar = 'pass';
function testfunction($par1, $par2, $optpar = $passvar) {
echo 'Par1= '.$par1.' Par2 = '.$par2.'OptPar = '.$optpar.'!';
}
testfunction('foo', 'bar');
?>


Funktioniert nicht und gibt folgende Fehlermeldung zurück:

Parse error: syntax error, unexpected '$passvar' (T_VARIABLE) in C:\xampp\htdocs\_project\test.php on line 3

Wie kann ich eine schon definierte String Variable als optionaler Parameter an eine Funktion übergeben? Ich möchte nicht extra dafür eine variable global verfügbar machen. Und auch möchte ich nicht beim funktionsaufruf die variable als zusätzlichen parameter angeben, er sollte optional sein bzw. als Standardparameter dienen.
News:
27.10.2012
velok 13 3
1 Antwort
2
Du kannst $passvar nur in Form von testfunction('foo', 'bar', $passvar); übergeben.
Die Funktion testfunction() kann ja nicht nach "außen gucken" (wenn man so will) um zu gucken wo es die $passvar denn nun gibt.

Anders ginge es nur objektorientiert:
<?php
class test() {
function testfunction($par1, $par2) {
echo 'Par1= '.$par1.' Par2 = '.$par2.'OptPar = '.$this->passvar.'!';
}
}

$bla = new test();
$bla->passvar = 'pass';
$bla->testfunction('foo', 'bar');
?>


Edit:
Wenn $passvar nicht hardkodiert im Quelltext steht, sondern irgendwo herkommt, kann man möglicherweise noch eine extra Funktion schreiben, die diese Variable füllt. Die Funktion könnte man dann innerhalb der testfunction() triggern und somit $passvar funktionsintern füllen.
Da müsstest Du allerdings dann noch ein paar Angaben machen.
27.10.2012
lunatigs 1,3k 2 8
lunatigs 1,3k 2 8
Das mit der Funktion ist ein guter Hinweis. Habe das Problem aber relativ einfach mit abfragen von $_GET['lang'] lösen können. Ich danke dir, denn nun weiss ich warum meine Idee nicht funktionierte.
velok 27.10.2012

Stelle deine Php-Frage jetzt!