wyświetlanie "stringa ze {$zmienną} w nawiasach klamrowych"

0

Rozumiem po co to jest, dzięki temu mogę wkleić zmienną wewnątrz stringa bez odstępów przed i po oraz bez przełamywania go i sklejania ="aa" . $z. "cc".

$z="bb";
$string="aa{$z}cc";

I dostać w wyniku ciąg: aabbcc, no i super.

Ale jak eskejpnę te klamry:

$z="bb";
$string="aa\{$z\}cc";

To dostanę piękny ciąg aa\{bb\}cc.

Pytanie: czy jest jakaś ludzka metoda na uzyskanie na wyjściu ciągu: aa{bb}cc?
Bo po nieludzku albo posklejam to z kilku kawałków, albo zdefiniuję se wcześniej zmienne $lewy_nawias / $prawy_nawias.

1

Racze tylko tak:

$string="aa{". $z ."}cc";

1

Wyescapeuj zmienną zamiast nawiasów:

$str = "aa{\$z}cc";

Inaczej Ci nie zadziała, dlatego że w PHP możesz też użyć takiego zapisu:

$str = "aa$z.cc"

I zadziała. Wcale nie trzeba użyć {}, żeby to przeszło. Musisz tylko po zmiennej postawić jakiś znak, który PHP nie zinterpretuje jako część nazwy zmiennej (w tym wypadku użyłem .).

$foo = 'foo';
$bar = 'bar';
$baz = 'baz';

$foobarbaz = "foo: $foo bar: $bar baz: $baz";

Albo jeszcze prościej, użyj pojedynczych cudzysłów..

$str = 'aa{$z}cc';

Edit
haha, dopiero po poście @sieedukuje zobaczyłem o co Ci chodzi... no nic trochę wiedzy nie zaszkodzi :P

3

Możesz napisać tak:

$str = "aa{{$z}}cc";

1 użytkowników online, w tym zalogowanych: 0, gości: 1