2010-09-18 11 views
5

Programowałem w PHP od lat i zawsze zastanawiałem się, czy istnieje sposób na "wstępne połączenie" ciągu znaków. Przykład:Skrócona skrócona wersja PHP?

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

Robiłem to przez wiele lat w celu dołączania wartości do początku łańcucha:

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

Czy jest skrótem dla tego? Po prostu ciekawy.

+2

Poprzez skrót to znaczy wzdłuż linii = jak byś zrobił, gdybyś chciał dołączyć zamiast prepend.? –

Odpowiedz

1

Nie, ale można napisać własną funkcję:

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

Powyższe wywołanie pc ustawi $path do $server . $path.

+9

To sprawia, że ​​cały kod jest mniej czytelny. – Gumbo

+0

Taka funkcja jest tylko sugestią do skrótu, ponieważ nie ma wbudowanej w to składni składni. Jeśli ci się nie podoba, nie używaj go ...? –

+0

Właściwie napisałeś metodę klasy. Wciąż zgadzam się z Gumbo w tej sprawie. – AntonioCS

3

A nie tak poważna odpowiedź (wiem, że to dłużej):

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

Nie ma ograniczeń co do kreatywności! ;)

2

skrótowym dla konkatenacji jest interpolation:

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

Ale interpolacja działa tylko z literalnymi łańcuchami i zmiennymi. – Gumbo

+0

Miałem raczej na myśli, że do konkatenacji zmiennych potrzebna jest literalna deklaracja łańcuchowa. Możesz używać tylko zmiennych i żadnych innych zwracających wartości wyrażeń, takich jak wywoływanie funkcji itp. – Gumbo