2010-09-18 16 views
5

Ich habe seit Jahren in PHP programmiert, und ich habe mich immer gefragt, ob es eine Möglichkeit gibt, eine Zeichenfolge vorzuspeichern. Beispiel:PHP Shorthand für Pre-Verkettung?

$path = '/lib/modules/something.php'; 
$server = $_SERVER['DOCUMENT_ROOT']; 

ich tun dies seit Jahren, um habe einen Wert an den Anfang einer Zeichenfolge anhängen:

$path = $server . $path; 
// returns: /home/somesite.com/public_html/lib/modules/something.php 

Gibt es eine Abkürzung für das? Nur neugierig.

+2

Durch Stenografie meinen Sie entlang der Linien = wie würden Sie tun, wenn Sie statt prepend anhängen wollte.? –

Antwort

0

die sprintf Funktion ausprobieren, wie es für mich gearbeitet hat - Informationen über sie hier: http://docs.php.net/sprintf

+0

Das macht es leider nur länger. –

1

Nein, aber Sie können Ihre eigene Funktion schreiben:

function pc(&$a, &$b) { 
    $a = $b . $a; 
} 
pc($path, $server); 

Der obige Aufruf pc eingestellt wird $path bis $server . $path.

+9

Dies macht nur den ganzen Code weniger lesbar. – Gumbo

+0

Eine Funktion wie diese ist nur ein Vorschlag für eine Kurzschrift, da es dafür keine eingebaute Syntax gibt. Wenn Sie es nicht mögen, benutzen Sie es nicht ...? –

+0

Eigentlich hast du eine Methode einer Klasse geschrieben. Trotzdem stimme ich Gumbo in diesem Punkt zu. – AntonioCS

3

A nicht so ernst Antwort (ich weiß, dass es länger):

$path = strrev($path); 
$path .= strrev($_SERVER['DOCUMENT_ROOT']); 
$path = strrev($path); 

Es gibt keine Grenze für Kreativität! ;)

2

eine Abkürzung für Verkettung ist interpolation:

$path = "{$_SERVER['DOCUMENT_ROOT']}/lib/modules/something.php"; 
+1

Die Interpolation funktioniert jedoch nur mit literalen Strings und Variablen. – Gumbo

+0

Ich meinte eher, dass eine literale String-Deklaration benötigt wird, um Variablen zu verketten. Und Sie können nur Variablen und keinen anderen Wert verwenden, der Ausdrücke wie Funktionsaufrufe usw. zurückgibt. – Gumbo