mac 下composer 安装

方式一:mac下可以使用

brew install composer

方式二:官方安装命令

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

执行第一条命令下载下来的 composer-setup.php 脚本将简单地检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的 composer.phar 文件到当前目录。

上述 3 条命令的作用依次是:

  1. 下载安装脚本 - composer-setup.php - 到当前目录。
  2. 执行安装过程。
  3. 删除安装脚本。

    局部安装

    上述下载 Composer 的过程正确执行完毕后,可以将 composer.phar 文件复制到任意目录(比如项目根目录下),然后通过 php composer.phar 指令即可使用 Composer 了!

    全局安装

    全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。

    Mac 或 Linux 系统:

    打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到 /usr/local/bin/ 目录下面:

    复制
    sudo mv composer.phar /usr/local/bin/composer
    

    Mac 或 Linux 系统:

    打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到 /usr/local/bin/ 目录下面:

    复制
    sudo mv composer.phar /usr/local/bin/composer
    

     如果使用中国全量镜像?打开终端输入以下命令即可

    composer config -g repo.packagist composer https://packagist.phpcomposer.com
  4. 使用composer 的时候 我经常使用家里宽带网络报错( failed to open stream),换成4G 就能顺利使用,镜像还是不稳定吧。

php中数组遍历的四种方式

首先要讲一点的是:PHP中的数组与C/C++中的数组不同。

它是基于键值对结构的hash表来实现的(存在key/value的概念)。有点类似于python和lua中的dictionary。

在没有显示指定key的情况下,默认以索引(0,1,2,3…)的形式来填充key字段。

另外,数组的使用时有一个指针的概念,有点像C++中的迭代器。迭代器总是指向容器中当前使用的对象。

下面来看php中的数组的四种遍历方式:

<?php
   $data      = array(
      'a' => "AA",
      'b' => "BB",
      'c' => "CC"
   );
   $indexData = array(
      '0' => "AA",
      '1' => "BB",
      '2' => "CC"
   );
#方式1 可以用于 索引数组和关联数组
   foreach ($data as $k=>$v){
      echo $v;
      echo '<br>';
   }
   echo '<hr>';
#方式2 可用于 索引数组和关联数组
   foreach ($data as $r){
      echo $r;
      echo '<br>';
   }
   echo '<hr>';
#方式3 可用于 索引数组
   for($i=0;$i<count($indexData);$i++){
      echo $indexData[$i];
      echo '<br>';
   }
   echo '<hr>';
#方式4 可用于 索引数组和关联数组
#each()函数需要传递一个数组作为一个参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。 
#list()函数,这不是一个真正的函数,是PHP的一个语言结构。list()用一步操作给一组变量进行赋值。
   while (list($key,$val) = each($indexData)){
      echo $val;
      echo '<br>';
   }
?>