Sie können dafür immer Ihre eigene Funktion erstellen:
function prepend($string, $chunk){if(!empty($chunk)&& isset($chunk)){return $string.$chunk;}else{return $string;}}
$stringwäre das Stück, das Sie voranstellen möchten, und $chunkwäre der Text, dem etwas vorangestellt werden soll.
Sie könnten sagen, dass die Überprüfungen optional sind, aber wenn Sie sie dort haben, müssen Sie sich keine Sorgen machen, dass Sie versehentlich einen Nullwert übergeben.
Danke, du hast aber recht. Es ist definitiv nicht so einfach oder schnell wie etwas Eingebautes. Sie können es gerne kopieren und einfügen, wenn dies einfacher ist: D
Aaron
7
Wenn etwas ist, ist !emptyes auch immer isset, keine Notwendigkeit für diese doppelte Überprüfung. Da dies $chunkein erforderlicher Parameter der Funktion ist, muss er außerdem an die Funktion übergeben werden, sonst beschwert sich PHP. Dies bedeutet, dass diese Prüfung abgekürzt werden kann if ($chunk)(um festzustellen, ob sie falsch ist, auch bekannt als "leer"). Aber wenn $chunknichts enthalten ist, passiert sowieso nichts. Dieser ganze Funktionskörper kann also abgekürzt werden return $string . $chunk. Was bedeutet, dass diese ganze Funktion ziemlich unnötig ist.
Täuschung
1
Sie können eine Variable festlegen, aber auch leer sein. Beispielsweise ist eine Variable mit dem Wert "" leer, wird aber auch gesetzt.
Aaron
1
Ja, aber ich sage, Ihre Funktion ist eine sehr ausführliche Art zu schreiben $foo . $bar. Ich fordere Sie auf, einen wichtigen Fall zu finden, in dem Ihre Funktion etwas anderes tut. :)
täuschen
3
Ich weiß, dass dies vor einiger Zeit gefragt / beantwortet wurde, aber diese Antwort ist funktional gleichwertig, obwohl es sich nicht um einen Zuweisungsoperator handelt und niemand seine Verwendung für die allgemeine Verkettung von Zeichenfolgen kommentiert hat.
Möglicherweise möchten Sie die Verwendung der sprintf( Dokumentations- ) Funktionsfamilie für die Verkettung von Zeichenfolgen untersuchen. Es bietet viel mehr Desinfektion und Benutzerfreundlichkeit als nur das Kombinieren von zwei Zeichenfolgen mit Zuweisungsoperatoren.
Leider denke ich nicht, dass sprintf () so schnell ist wie einfache Concats. Und es scheint auch nicht annähernd so syntaxfreundlich zu sein. Siehe: stackoverflow.com/q/7147305/2430549
HoldOffHunger
Richtig, aber nicht sicher, wie Sie mit syntaxfreundlich meinen. Es ist zwar nicht so schnell oder simpel wie die Verkettung. sprintfwird häufig in mehreren Sprachen verwendet. sprintfhat seinen Platz und Zweck, wann es verwendet werden soll. z.B. Das Umwandeln mehrerer Werte oder das Erzwingen einer Reihe von Eingaben mithilfe von sprintfbietet mehr Funktionen als die einfache Verkettung, wenn dies erforderlich ist . Siehe: 3v4l.org/8PWil Es sollte jedoch nicht als vollständiger Ersatz für die Verkettung verwendet werden.
Fyrye
3
Sie können die integrierte Funktion substr_replaceumbrechen, wobei die Argumente $ start und $ length auf 0 gesetzt werden können, wodurch die $ -Ersetzung an $ string vorangestellt wird und das Ergebnis wie folgt zurückgegeben wird:
function prepend(& $string, $prefix){
$string = substr_replace($string, $prefix,0,0);}
Ein Beispiel für die Verwendung der Hilfsfunktion wäre:
$foo
an$bar
, anstatt$bar
vor$foo
. Das Ergebnis ist ähnlich, aber ich denke, er möchte mutieren$foo
.Antworten:
Nee. Aber du kannst es tun
quelle
Sie können dafür immer Ihre eigene Funktion erstellen:
$string
wäre das Stück, das Sie voranstellen möchten, und$chunk
wäre der Text, dem etwas vorangestellt werden soll.Sie könnten sagen, dass die Überprüfungen optional sind, aber wenn Sie sie dort haben, müssen Sie sich keine Sorgen machen, dass Sie versehentlich einen Nullwert übergeben.
quelle
!empty
es auch immerisset
, keine Notwendigkeit für diese doppelte Überprüfung. Da dies$chunk
ein erforderlicher Parameter der Funktion ist, muss er außerdem an die Funktion übergeben werden, sonst beschwert sich PHP. Dies bedeutet, dass diese Prüfung abgekürzt werden kannif ($chunk)
(um festzustellen, ob sie falsch ist, auch bekannt als "leer"). Aber wenn$chunk
nichts enthalten ist, passiert sowieso nichts. Dieser ganze Funktionskörper kann also abgekürzt werdenreturn $string . $chunk
. Was bedeutet, dass diese ganze Funktion ziemlich unnötig ist.$foo . $bar
. Ich fordere Sie auf, einen wichtigen Fall zu finden, in dem Ihre Funktion etwas anderes tut. :)Ich weiß, dass dies vor einiger Zeit gefragt / beantwortet wurde, aber diese Antwort ist funktional gleichwertig, obwohl es sich nicht um einen Zuweisungsoperator handelt und niemand seine Verwendung für die allgemeine Verkettung von Zeichenfolgen kommentiert hat.
Möglicherweise möchten Sie die Verwendung der
sprintf
( Dokumentations- ) Funktionsfamilie für die Verkettung von Zeichenfolgen untersuchen. Es bietet viel mehr Desinfektion und Benutzerfreundlichkeit als nur das Kombinieren von zwei Zeichenfolgen mit Zuweisungsoperatoren.Normalerweise verwende ich
vsprintf
, da die Arbeit mit Arrays einfacher zu verwalten ist als einzelne Argumente.Auch mit einem Array von Werten kann man einfach
implode
den resultierenden Wertesatz für eine einfache Verkettung von Strings verwenden.quelle
sprintf
wird häufig in mehreren Sprachen verwendet.sprintf
hat seinen Platz und Zweck, wann es verwendet werden soll. z.B. Das Umwandeln mehrerer Werte oder das Erzwingen einer Reihe von Eingaben mithilfe vonsprintf
bietet mehr Funktionen als die einfache Verkettung, wenn dies erforderlich ist . Siehe: 3v4l.org/8PWil Es sollte jedoch nicht als vollständiger Ersatz für die Verkettung verwendet werden.Sie können die integrierte Funktion
substr_replace
umbrechen, wobei die Argumente $ start und $ length auf 0 gesetzt werden können, wodurch die $ -Ersetzung an $ string vorangestellt wird und das Ergebnis wie folgt zurückgegeben wird:Ein Beispiel für die Verwendung der Hilfsfunktion wäre:
Wenn Sie sich für prozedurale Programmierung interessieren, ist das so.
quelle
$string = $prefix.$string;
Funktion ausführen, reicht dies aus.Wenn Sie den Kommentar von Blakethepatton in eine Antwort verwandeln (danke), können Sie dies bei längeren Variablennamen besser tun, indem Sie wie folgt auf die Variable verweisen :
Dies erspart Ihnen das Eingeben der Antwort von Eric V, wenn Ihr ursprünglicher Variablenname 12 Zeichen oder länger ist.
Eine Alternative in einer Zeile:
quelle