2010-09-18 7 views
5

J'ai programmé en PHP pendant des années, et je me suis toujours demandé s'il y avait un moyen de pré-concaténer une chaîne. Exemple:PHP raccourci pour pré-concaténation?

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

Je fais cela depuis des années afin d'ajouter une valeur au début d'une chaîne:

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

Y at-il un raccourci pour cela? Juste curieux.

+2

en sténographie voulez-vous dire le long des lignes de = comme vous le feriez si vous vouliez ajouter au lieu de précédez.? –

Répondre

0

essayer la fonction sprintf car il a travaillé pour moi - des informations sur le sujet ici: http://docs.php.net/sprintf

+0

Cela fait juste plus de temps, malheureusement. –

1

Non, mais vous pouvez écrire votre propre fonction:

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

L'appel ci-dessus pour pc sera mis $path à $server . $path.

+9

Ceci rend juste le code entier moins lisible. – Gumbo

+0

Une fonction comme celle-ci est juste une suggestion pour un raccourci, car il n'y a pas de syntaxe intégrée pour cela. Si vous ne l'aimez pas, ne l'utilisez pas ...? –

+0

En fait, vous avez écrit une méthode d'une classe. Pourtant, je suis d'accord avec Gumbo sur celui-ci. – AntonioCS

3

Une réponse sérieuse pas (je sais qu'il est plus):

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

Il n'y a pas de limite à la créativité! ;)

2

un raccourci pour la concaténation est interpolation:

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

Mais l'interpolation ne fonctionne qu'avec les chaînes littérales et les variables. – Gumbo

+0

Je voulais plutôt dire qu'une déclaration de chaîne littérale est nécessaire pour concaténer des variables. Et vous ne pouvez utiliser que des variables et aucune autre valeur renvoyant des expressions comme des appels de fonctions, etc. – Gumbo

Questions connexes