2013-10-09 6 views
1

Je travaille avec php sous xampp.Espace de noms en php sous xampp

Dans mon C: \ xampp \ htdocs \ AppLib1 \ lib1.php

<?php 
// application library 1 i.e. lib1.php 
namespace AppLib1; 

const MYCONST = 'AppLib1MYCONST'; 

function MyFunction() { 
    return __FUNCTION__; 
} 

class MyClass { 
    static function WhoAmI() { 
     return __METHOD__; 
    } 
} 
?> 

et dans mon C: \ xampp \ htdocs \ myapp.php

<?php 
//myapp.php 

header('Content-type: text/plain'); 
include_once ('lib1.php'); 

echo AppLib1MYCONST . "n"; 
echo AppLib1MyFunction() . "n"; 
echo AppLib1MyClass::WhoAmI() . "n"; 
?> 

maintenant quand je suis en cours d'exécution myapp.php localement, je reçois erreur fatale


Attention: require_once (lib1.php): failed to open stream: Aucun fichier ou répertoire dans C: \ xampp \ htdocs \ myapp.php en ligne

erreur irrécupérable: require_once(): Echec ouverture requise 'lib1.php' (include_path = » .; C: \ xampp \ php \ PEAR ') dans C: \ xampp \ htdocs \ myapp.php en ligne

peut certains me expliquer comment utiliser la fonction, classe, constante de sortie lib1.php

devrait être: AppLib1MYCONS T AppLib1MyFunction AppLib1MyClass :: WhoAmI

I Know Les problèmes de collision de noms peuvent être résolus avec des espaces de noms.

Répondre

0

Je crois que vous devez appeler comme ceci:

echo AppLib1\MYCONST . "n"; 
echo AppLib1\MyFunction() . "n"; 
echo AppLib1\MyClass::WhoAmI() . "n";