Si PHP utilise des tableaux multidimensionnels, l'efficacité sera-t-elle très faible ?
PHP中文网
PHP中文网 2017-06-15 09:22:11
0
7
883

Lorsque vous utilisez PHP pour réaliser des projets, vous devez utiliser une structure de données pour stocker les données, mais en PHP, il semble qu'elles ne puissent être stockées qu'à l'aide de tableaux.

Les fichiers de configuration de Laravel de PHP et d'autres frameworks utilisent tous des tableaux multidimensionnels, tels que :

// app/config/database.php 文件
return array(
    /*
    |--------------------------------------------------------------------------
    | PDO 类型
    |--------------------------------------------------------------------------
    | 默认情况下 Laravel 的数据库是用 PDO 来操作的,这样能极大化的提高数据库兼容性。
    | 那么默认查询返回的类型是一个对象,也就是如下的默认设置。
    | 如果你需要返回的是一个数组,你可以设置成 'PDO::FETCH_ASSOC'
    */
    'fetch' => PDO::FETCH_CLASS,

    /*
    |--------------------------------------------------------------------------
    | 默认的数据库连接名
    |--------------------------------------------------------------------------
    | 这里所说的名字是和下面的 'connections' 中的名称对应的,而不是指你用的什么数据库
    | 为了你更好的理解,我在这里换了一个名字
    */
    'default' => 'meinv',

    /*
    |--------------------------------------------------------------------------
    | 数据库连接名
    |--------------------------------------------------------------------------
    | 这里就是设置各种数据库的配置的,每个数组里的 'driver' 表明了你要用的数据库类型
    | 同一种数据库类型可以设置多种配置,名字区分开就行,就像下面的 'mysql' 和 'meinv'
    | 其他的么,我觉得不需要解释了吧,就是字面意思,我相信你英文的能力(其实是我英文不好)
    */
    'connections' => array(

        'sqlite' => array(
            'driver'   => 'sqlite',
            'database' => __DIR__.'/../database/production.sqlite',
            'prefix'   => '',
        ),

        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

        'meinv' => array( //这里就是上面例子里的默认连接数据库名,实际上是 mysql 数据库
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

        'pgsql' => array(
            'driver'   => 'pgsql',
            'host'     => 'localhost',
            'database' => 'database',
            'username' => 'root',
            'password' => '',
            'charset'  => 'utf8',
            'prefix'   => '',
            'schema'   => 'public',
        ),

        'sqlsrv' => array(
            'driver'   => 'sqlsrv',
            'host'     => 'localhost',
            'database' => 'database',
            'username' => 'root',
            'password' => '',
            'prefix'   => '',
        ),

    ),
);

Je pense que l'efficacité des tableaux multidimensionnels sera très faible, mais le framework Laravel est utilisé de cette manière, donc je ne sais pas s'il est réalisable d'utiliser des tableaux multidimensionnels en PHP, j'espère que vous pourrez y répondre. ! ! ! Merci! ! !

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(7)
为情所困
  1. Il n'y a que des tableaux en PHP, vous n'avez pas le choix. Laravel est un framework basé sur PHP, sa syntaxe ne peut donc pas être séparée de PHP ;

  2. L'efficacité dépend de la façon dont vous l'utilisez. Bien sûr, les opérations de boucle multicouches seront inefficaces, mais si vous utilisez plus d'index, l'efficacité sera correcte

学霸

Il n’y a pas de problème de faible efficacité. . L'implémentation des tableaux de PHP est à l'origine une liste doublement chaînée. .

淡淡烟草味

Ce n'est pas un problème d'efficacité. L'efficacité des requêtes de base de données est plus importante

洪涛

L'efficacité d'exécution ne dépend pas de la vitesse d'exécution de php, les IO sont le goulot d'étranglement. Cette chose peut être traitée par PHP au niveau MS

洪涛

Laravel : Je n’assumerai pas cette responsabilité !

Les fichiers de configuration de la plupart des frameworks et programmes PHP sont comme ça. Si l'efficacité diminue vraiment, le framework Laravel, en tant que leader de PHP, utilisera certainement une meilleure façon de le gérer.

De plus, PHP7 est beaucoup plus efficace dans les opérations sur les tableaux que PHP5.

学霸

Existe-t-il de nombreux projets qui utilisent JSON pour enregistrer les configurations ?
Le tableau associatif en PHP est équivalent à l'objet JSON en JS
Vous pouvez donc comparer les performances du tableau associatif de PHP avec l'objet JSON de Node.JS. fichier contenant un tableau associatif (cartographie/dictionnaire) de 1 million d'éléments :
PHP7 ne prend que 1/3 de Node7, et même PHP5 est plus rapide que Node7

On voit que les performances du tableau associatif PHP sont assez. bien .

我想大声告诉你

Tout d'abord, permettez-moi de mentionner un point. Il est absurde de parler d'efficacité sans utiliser le scénario d'utilisation. Utilisez-le si vous avez besoin d'efficacité de développement php, 需要运行效率就去用 c/c++.

.

Répondez à la question : c'est tout à fait faisable lorsque le trafic du site Web n'est pas important.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal