2009-12-25 11 views
13

Qualcuno può dirmi se uno di questi due metodi ha un vantaggio rispetto all'altro e perché?ABSPATH o __FILE__?

$mydir = ABSPATH.'/wp-content/themes/mytheme/images';

$mydir = dirname(__FILE__).'/images';

Entrambi possono essere utilizzati per ottenere e percorso assoluto della directory immagini di "mitema" indipendentemente struttura se wordpress è installato nella directory principale o in una sottodirectory fuori radice. In entrambi i casi, vengono richiamati dal file functions.php che si trova nella cartella "mytheme".

+3

C'è una risposta da @ Adamo, che mina trionfi in termini di qualità, potresti cambiare la risposta accettato –

risposta

13

Personalmente preferirei lo dirname() poiché è sempre garantito che mi dia il risultato corretto, mentre il metodo ABSPATH si basa su un percorso a tema fisso e sul nome del tema che possono entrambi cambiare.

A proposito, è possibile utilizzare __DIR__ anziché dirname(__FILE__).

+2

Si noti che '' __FILE__' e __DIR__' a volte dà risultati indesiderati se si utilizzano i collegamenti simbolici, poiché per progettare il '__FILE__' * risolve * i collegamenti simbolici. Sfortunatamente non c'è modo di aggirare questo e vari modi per risolvere questo problema nel PHP stesso sono proposti in [PHP's bugs tracker] (https://bugs.php.net/search.php?cmd=display&search_for=__FILE__+symbolic). – Ciantic

2

per i miei progetti avrei scelto dirname(__FILE__), inoltre v'è una nuova costante in PHP:

__DIR__ === dirname(__FILE__) 
+0

Il const '__FILE__' esiste da PHP 4, mentre il const' __DIR__' è solo da PHP 5.3. Vale la pena notare, se ti aspetti di lavorare con qualcosa di più vecchio di 5.3 – EvanK

9
Problemi correlati