Antworten auf deine Fragen:
Neues Thema erstellen

Teil einer Variable rückwirkend ändern - geht das?

kevin_web_web

Noch nicht viel geschrieben

Hallo

Ich habe eine etwas längere Variable, die sich aus mehreren strings und anderen Variablen zusammensetzt, würde zum Beispiel so aussehen:

$var1 = $var1 = 'irgendein_text'.$var2.'mehr_text'.$var2.'noch_mehr_text';

Nun mache ich eine If-abfrage und in einem bestimmten Fall, soll eine weitere Variable aus $var1 plus nochmal $var1 bestehen, wobei ich gerne, bevor ich die $var1 noch ein zweites mal dranhänge, die $var2, die ja Teil von $var1 ist sozusagen rückwirkend ändern würde, so das eben $var1, beim zweiten Mal dranhängen an $var3 dahingehend verändert ist, das nur $var2 verändert ist. Pseudocode:

PHP:
$var1 = 'irgendein_text'.$var2.'mehr_text'.$var2.'noch_mehr_text'; 

if($bedingung) { 
$var3 = $var1; 
$var2 =& $var345; //irgendeine andere variable 
$var3 .= $var1; 
}
Geht das überhaupt? ich blicke mit Referenzieren in PHP noch nicht so ganz durch, aber ich dachte mir, das es vieleicht damit geht?

Danke für eure Antworten,
Kevin
 
Zuletzt bearbeitet:

Doitsu

Aktives Mitglied

AW: Teil einer Variable rückwirkend ändern - geht das?

Mit Referenzieren kommst du dort nicht weit, da sobald du die Varibale in einen String einbaust, diese nicht mehr als Variable drin steht, sondern ein Teil vom String ist.

Ansonten: Willst du das alles in einem Ablauf machen, oder im Nachhinein aendern? Wenn in einem Ablauf -> Einfach Variable aendern, und den String noch mal zusammenbauen, anschliessend beide zusammensetzen.

Wenn das alles identisch ist wuerde sich dafuer eine Funktion anbieten, so musst du es nur an einer Stelle, nicht ueberall, aendern.

Wenn das nix hilft waere ein praktisches Beispiel gut, ich kann mir den Sinn dafuer gerade nicht richtig vorstellen..
 

mwxx

Nicht mehr ganz neu hier

AW: Teil einer Variable rückwirkend ändern - geht das?

Der Vorschlag von Doitsu ist im Prinzip der Weg der Wahl. Solltest Du $var2 durch irgendwelche textlichen Eigenheiten (Trennzeichen o.ä.) eindeutig sondieren können, kannst Du mit den PHP-Funktionen strpos() [Positionsbestimmung] und substr() [Teilzeichenketten finden] bzw. str_replace() [Teilzeichenketten ersetzen] alles mögliche mit dem bereits fertigen String anstellen.
 

kevin_web_web

Noch nicht viel geschrieben

AW: Teil einer Variable rückwirkend ändern - geht das?

Hallo Leute

sry das ich jetzt erst antworte, war paar Tage verreist. aber auf jeden Fall erstmal danke für eure Antworten.

Doitsu:
"Mit Referenzieren kommst du dort nicht weit, da sobald du die Varibale in einen String einbaust, diese nicht mehr als Variable drin steht, sondern ein Teil vom String ist."

Gibt es in PHP eigentlich überhaupt eine Möglichkeit, eine Variable "rückwirkend" zu ändern, auch dann, wenn sie in einer anderen Variable eingebaut ist? wie ist das mit anderen Sprachen zb c++, geht so etwas da?

@mwxx

"Solltest Du $var2 durch irgendwelche textlichen Eigenheiten (Trennzeichen o.ä.) eindeutig sondieren können, kannst Du mit den PHP-Funktionen strpos() [Positionsbestimmung] und substr() [Teilzeichenketten finden] bzw. str_replace() [Teilzeichenketten ersetzen] alles mögliche mit dem bereits fertigen String anstellen."

Das ist eigentlich ne ganz interessante Idee. Ich könnte also zum Beispiel als "Marker" xyz_var1 einsetzen und dann hinterher xyz_var1 mit str_replace ersetzen.
Ist das denn eigentlich gängige Praxis? Oder ist der Gebrauch von str_replace bei sowas nicht zu empfehlen, weil es zb doch mehr resourcen verbraucht, als wenn ich die Variablen einzeln komplett neu schreibe?!

Mfg, Kevin
 
Zuletzt bearbeitet:

DarkFather

Nicht mehr ganz neu hier

AW: Teil einer Variable rückwirkend ändern - geht das?

Warum setzt du deinen finalen String nicht erst zusammen wenn er fertig ist?

Und dann gebe ich zu bedenken, dass eine Variable nicht gelöscht wird wenn du den String gebastelt hast, du kannst also einfach nochmal alle Variablen zusammensetzen, wenn eine sich ändert.

PHP:
$var2 = 'X2X';
$var1 = 'irgendein_text'.$var2.'mehr_text'.$var2.'noch_mehr_text'; 

if($bedingung) { 
$var3 = $var1; 
$var2 = '333'; //irgendeine andere variable 
//jetz kommts
$var3 .= 'irgendein_text'.$var2.'mehr_text'.$var2.'noch_mehr_text'; 
echo $var3;
}
Ausgabe (wenn $bedinung == true):
irgendein_textX2Xmehr_textX2Xnoch_mehr_textirgendein_text333mehr_text333noch_mehr_text

Das sollte die einfachste Methode sein...

Übrigens ist str_replace() der Funktion preg_replace() vorzuziehen, sofern keine Regulären Ausdrücke benötigt werden, wenn man allerdings zuerst sucht (strpos und substr) sollte man sich überlegen direkt preg_replace zu verwenden.

Und noch eins, weil die Lehrstunde so schön ist:
PHP:
echo "Var1: $var1";
echo 'Var1: $var1';
Das ist NICHT das selbe, ersteres (mit " ) schreibt den Inhalt von $var1, letzteres (mit ' ) schreibt $var1, du kannst dir also deine '.$var1.' sparen und einfach folgendes schreiben:
PHP:
$var1 = "irgendein_text$var2mehr_text$var2noch_mehr_text";

MfG
Dark
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben