stringverknüpfung von verweisen

target

Mitglied
eigentlich ganz simpel sollte man meinen:

$alles=&$var1.&$var2;

aber leider gibts da folgende Fehlermeldung:

Parse error: parse error, unexpected '&' in xxx on line y

hat jemand ne ahnung, wie man das hinbekommen könnte, oder wo der fehler liegt?
 
Der Operator '.' ist nur für Strings definiert. Somit kann dein Vorhaben nicht funktionieren. Was hättest du denn als Ausgabe erwartet bzw. was hast du vor?
 
erwartet hätte ich, dass

PHP:
$var1="test1a";
$var2="test1b";
$alles=&$var1.&$var2;
$var1="test2a";
$var2="test2b";
print $alles;

"test2atest2b"
ausgibt.

Brauchen tu ich des ganze für eine Lexer-Gramatik, die ich mit php realisieren muss, und dafür pattern für regexps zusammenstellen muss.
das ganze sieht dann in etwa so aus:
PHP:
$regexp[quest]=&$regexp[quest_start].&$regexp[block]."+".&$regexp[quest_end];
$regexp[block]=&$regexp[block_start].&$regexp[element]."+".&$regexp[block_end];
$regexp[element]=&$regexp[if]."|".&$regexp[option];
$regexp[if]=&$regexp[if_start].&$regexp[element]."+".&$regexp[if_end];
$regexp[option]="\[option *\]";
$regexp[if_start]="\[if *\]";
$regexp[if_end]="\[\/if\]";
$regexp[block_start]="\[(\d)+\]";
$regexp[block_end]="\[/(\d)+\]";
$regexp[quest_start]="\[quest\]";
$regexp[quest_end]="\[\/quest\]";

foreach($regexp as $x)
$x="(\s)*(".$x.")(\s)*"; //whitespaces ignorieren und einzelne regexps klammern

preg_match("/ $regexp[quest]/i", $quest, $array);

Das ganze stellt nur nen Entwurf der Grammatik dar.
 
Zuletzt bearbeitet:
Auf die schnelle fällt mir nur join() als Möglichkeit ein:

PHP:
<?PHP$array = array("PHP","3/4","- Die Befehlsreferenz"); 
echo join(" ",$array); 
echo "<br>";
echo join("",$array);
echo "<br>";
echo join("#",$array); 
?>

Ausgabe:
PHP 3/4 - Die Befehlreferenz
PHP3/4- Die Befehlreferenz
PHP#3/4#- Die Befehlreferenz

http://www.selfphp.de hilft manchmal als Befehlsreferenz ;).. einfach unter Stringbefehlen :D

MfG Dominik ;)
 
Nein, das was du vorhast ist nicht möglich. Durch den '.' Operator wird immer ein neuer String erzeugt. Du musst also erst alles Strings definieren, und sie danach zusammenfügen.
 
vielleicht geht des ja, dass ich des ganze mit funktionen mach, also dann sozusagen

PHP:
function f1(){ 
    return f2().f3(); 
} 
function f2(){ 
    return "x"; 
} 
function f3(){ 
    return "y"; 
} 

print f1();

gleich mal probieren...
 
Zuletzt bearbeitet:
OMG.. ignoriert was ich geschrieben hab.. ich bin grad etwas durch den Wind!

edit: ..ähm mit Funktionen würde aber auch eine Funktion langen.. bei jedem Funktionsaufruf wird der String ja neu erstellt..
 
Zurück