2010-09-18 15 views
5

Ho programmato in PHP da anni e mi sono sempre chiesto se esiste un modo per "pre-concatenare" una stringa. Esempio:PHP Stenografia per la pre-concatenazione?

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

Ho fatto questo per anni al fine di aggiungere un valore al l'inizio di una stringa:

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

C'è una scorciatoia per questo? Solo curioso.

+2

Con stenografia vuoi dire lungo le linee di = come si farebbe se si volesse accodare invece di anteporre.? –

risposta

0

provare la funzione sprintf come ha funzionato per me - le informazioni su di esso qui: http://docs.php.net/sprintf

+0

Questo lo rende più lungo, sfortunatamente. –

1

No, ma si potrebbe scrivere la propria funzione:

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

La chiamata qui sopra per pc imposterà $path a $server . $path.

+9

Questo rende solo l'intero codice meno leggibile. – Gumbo

+0

Una funzione come questa è solo un suggerimento per una stenografia, poiché non esiste una sintassi integrata per questo. Se non ti piace, non usarlo ...? –

+0

In realtà hai scritto un metodo di una classe. Sono comunque d'accordo con Gumbo su questo. – AntonioCS

3

Una risposta non così grave (lo so che è più lungo):

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

Non c'è limite alla creatività! ;)

2

una scorciatoia per la concatenazione è interpolation:

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

Ma l'interpolazione funziona solo con stringhe e variabili letterali. – Gumbo

+0

Preferisco dire che è necessaria una dichiarazione di stringa letterale per concatenare le variabili. E puoi usare solo variabili e nessun altro valore che restituisca espressioni come chiamate di funzioni, ecc. – Gumbo

Problemi correlati