PHP sur l'utilisation de nouveaux
typecho
typecho 2017-06-29 10:08:15
0
3
741
// 项目使用 `composer` // 重新封装了 redis use cache\Redis; // 因为封装了几种缓存方式 如:file,memcache // 所以想要这种 字符串 的方式来 new 类 // 但是这个方式直接报错,没有重名问题 $class = 'Redis'; $instance = new $class($options); // 如果直接 new,就没有问题,可以正常运行 $instance = new Redis($options);

La première erreur est comme çaPHP Fatal error: Class 'Redis' not found.

Si je n'utilise pas le chargement automatique de l'espace de noms et que j'utiliseinclude file, il n'y a aucun problème avec la première et la deuxième méthodes.

Quel est le principe et comment le résoudre ? Merci.

typecho
typecho

Following the voice in heart.

répondre à tous (3)
世界只因有你

Lorsque vous utilisez un espace de noms et instanciez une variable comme nom de classe,需要包含完整的命名空间ajoutez l'espace de noms directement à l'endroit où il a été instancié

$cls_name = 'Redis'; $class = "\cache\Redis\".$cls_name; $instance = new $class($options);
    小葫芦

    Nécessite un espace de noms complet

    use cache\Redis; $class = Redis::class;//需要完整的命名空间 $instance = new $class($options);

    OU

    $class = '\cache\Redis'; //$class = \cache\Redis::class; $instance = new $class($options);
      三叔

      C'est résolu, merci.

        Derniers téléchargements
        Plus>
        effets Web
        Code source du site Web
        Matériel du site Web
        Modèle frontal
        À propos de nous Clause de non-responsabilité Sitemap
        Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!