2010-09-18 15 views
5

He estado programando en PHP durante años, y siempre me he preguntado si hay una forma de 'precatenar' una cadena. Ejemplo:PHP abreviatura de preconcatenación?

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

He estado haciendo esto durante años con el fin de añadir un valor al principio de una cadena:

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

¿Hay un atajo para esto? Sólo curioso.

+2

Por abreviada Qué quiere decir en la línea de = como lo haría si quisiera añadir en lugar de anteponer.? –

Respuesta

0

probar la función sprintf, ya que ha trabajado para mí - la información sobre él aquí: http://docs.php.net/sprintf

+0

Esto simplemente lo hace más largo, por desgracia. –

1

No, pero usted podría escribir su propia función:

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

La llamada anterior para pc establecerá $path a $server . $path.

+9

Esto hace que todo el código sea menos legible. – Gumbo

+0

Una función como esta es solo una sugerencia para una taquigrafía, ya que no hay una sintaxis incorporada para esto. Si no te gusta, no lo uses ...? –

+0

En realidad, usted escribió un método de una clase. Todavía estoy de acuerdo con Gumbo en este caso. – AntonioCS

3

Una respuesta no es tan grave (Sé que es más largo):

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

No hay límite a la creatividad! ;)

2

una taquigrafía para la concatenación es interpolation:

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

Pero la interpolación solo funciona con cadenas y variables literales. – Gumbo

+0

Prefiero decir que se necesita una declaración de cadena literal para concatenar variables. Y solo puede usar variables y ningún otro valor devolviendo expresiones como llamadas a funciones, etc. – Gumbo

Cuestiones relacionadas