• 数组中元素的意义是存放变量。每个元素存放一个值,且用一个键值指向它。正如我们上一节所介绍的,键值可以是整数或者任意长度的字符。

    有两种方式可以创建一个数组。第一种是显式地调用array()语法结构:

    $a = array (10, 20, 30);
    $a = array ('a' => 10, 'b' => 20, 'c' => 30);
    $a = array (5 => 1,  3 => 2, 1 => 3,);
    $a = array();

    以上的第一行代码创建了一个仅包含三个值的数组。这样的话,其中每个元素仍然有它自己的键值,PHP会为其中每一个没有指定键的元素自动加上以0开始的键。在第二个例子中,同样是三个元素,但期每一个键都被指定了一个字母左右键值(特别提醒的是字母键值长度可以任意)。第三个例子中,键值打破常规自增,第一个元素的键值是5——需要提醒的是最后一个逗号后面没元素,这在语法上是允许的,且不会影响到最终结果。最后的第四例创建了一个空的数组。

    那么第二种创建数组的方法是使用数组操作符“[]”:

    $x[] = 10;
    $x['aa'] = 11;
    
    echo $x[0]; // 输出10

    正如你看到的,使用操作符直接创建数组要比array()去创建数组来的高效的多:在第一行中,我们向数组变量$x中添加了一个新的值。由于我们没有给出键值,PHP会自动将其下一个自动编号的键值赋给这个新的数组元素。在第二行中,我们指定了一个’aa’作为键值添加到数组变量$x中。需要提醒的是,我们并没有明显指定$x是一个数组,可以这样使用意味着PHP会将其自动转换成数组供我们使用,除非它本身就是数组。如果$x是空的,那仅仅被转换成一个空的数组。

    [ 阅读全文 ] 2010-04-09 08:41:36
  • 数组是PHP中无可争议的高级数据结构之王。PHP中的数组异常松散——允许数值自增键、字母键甚至两者混合,且可以存放任何类型的值(包括存放其他数组)。拥有超过70个方法可以操作数组,几乎你能想得到的一定能能做得到——而且远不止此。

    • 3.1 数组基础
      • 3.1.1 打印数组
      • 3.1.2 索引数组与关联数组
      • 3.1.3 多维数组
      • 3.1.4 拆解数组
    • 3.2 数组操作
      • 3.2.1 数组间的比较
      • 3.2.2 统计、查找与删除
      • 3.2.3 键值颠倒与数组翻转
    • 3.3 遍历数组
      • 3.3.1 数组指针
      • 3.3.2 快捷遍历
      • 3.3.3 被动遍历
    • 3.4 数组排序
      • 3.4.1 其他排序选项
      • 3.4.2 随机化
    • 3.5 数组堆栈、队列与设置
      • 3.5.1 功能设置
    • 3.6 总结
    [ 阅读全文 ] 2010-04-08 11:24:27
  • 忙乎了一天:购买GoDaddy主机 解析域名 上传折腾 从CSDN博客上把到昨天为止的进度全部迁移过来。

    之前的火山互联确实的主机实在是让我无法忍受。你懂的,国内大多都这样的。

    现在用着还是蛮舒服的。

    [ 阅读全文 ] 2010-04-08 10:40:15
  • 函数时PHP语言中最常用的组件(或许这适用于任何语言)。没有了它,编写重用代码几乎不可能办到——更别说面向对象开发技术了。

    因此,你必须精通函数而非略懂皮毛,并且了解引用传参和可变个数传参。考试中会遇到不少围绕函数工作原理的问题——幸运的是这些概念相对简单且易于理解,在本章中都有讲到。

    [ 阅读全文 ] 2010-04-08 10:31:47
  • PHP中存在三个变量作用域:全局变量、函数局部变量和类成员变量。全局变量,人如其名,可以在程序任何部分使用;在函数和类以外定义的变量就称为全局变量。

    作者提示:类成员变量将在面向对象开发章节中详细介绍。

    在一个函数中,就进入了PHP的一个新的变量作用域——这里的变量与全局变量是互不关联,不会相互覆盖。任何定义在函数内部的变量都会在函数执行完后消失。因此函数中变量名称可以随意定义而不需要担心覆盖外面的变量(也就是兼容性问题)。

    $a = "Hello World";
    
    function hello()
    {
      $a = "Hello Reader";
      $b = "How are you";
    }
    
    hello();
    
    echo $a; // 输出"Hello World"
    echo $b; // 发出一个“使用了不存在的变量”的警告

    两条途径可以使全局变量作用于函数内;第一种方 法是使用global关键字在函数内申明:

    $a = "Hello";
    $b = "World";
    
    function hello()
    {
      global $a, $b;
      echo "{$a} {$b}";
    }
    
    hello(); // 输出"Hello World"

    注意一点,使用global关键字,其后的变量使用逗号分隔,可以同时将多个全局变量作用到函数中——当然,你也可以使用多条global语句声名,达到同样的效果。

    很多开发者感觉使用global关键字时全局变量与函数局部变量互通会引发一些问题。他们使用超全局数组$GLOBALS来解决这个问题:

    $a = "Hello";
    $b = "World";
    
    function hello()
    {
      echo $GLOBAL['a'] . ' ' . $GLOBAL['b']; 
    }
    
    hello(); // 输出"Hello World"

     

    [ 阅读全文 ] 2010-04-08 10:30:22
  • 在PHP中所有的函数都有返回值——即使你没有指定它返回内容。因此在PHP中声名”void”(无返回值)的函数没有意义。你可以使用return关键字来指定要返回的内容:

    function hello()
    {
      return "Hello World"; // 没有任何显示结果
    }
    
    $txt = hello(); // 将返回的“Hello World”值赋给$txt
    
    echo hello(); // 显示“Hello World”

    显然,return也可用于中断一个函数的运行,即使你没有打算返回任何值:

    function hello($who) 
    {
      echo "Hello $who";
      if ($who == "World") {
        return; // 执行到这里的话,本函数下面的语句就不会被执行到
      }
    
      echo ", how are you";
    }
    
    hello("World"); // 显示“Hello World”
    
    hello("Siemen"); // 显示“Hello Siemen, how are you?”

    请注意,即使你没有在return后面加上需要返回的内容,PHP仍然会触发函数返回NULL。

    函数也可以返回一个引用;这可以使返回值是其本身的引用,来取代复制关系(默认的返回值除了对象外其余都是复制关系)。比较典型的例子是资源类型(类似数据库连接)与使用工厂模式。但要注意的是——你只能返回一个值作为引用,而不是一个表达式,或者强制使用return语句返回NULL:

    function &query($sql)
    {
      $result = mysql_query($sql);
      return $result;
    }
    
    // 下面是不正确的写法,会引发PHP的提示
    function &getHello()
    {
      return "Hello World";
    }
    
    // 同样是不正确的写法,这样写会引发一个警告
    function &test()
    {
      echo "This is a test";
    }
    [ 阅读全文 ] 2010-04-08 10:27:36
  • 函数的语法非常简单。创建一个新的函数,我们只要使用function关键字,后面跟上一个识别名称,一对圆括号与一对花括弧:

    function hello()
    {
      echo "Hello World!";
    }
    
    hello(); // 显示 "Hello World!";
    

    PHP的函数名不区分大小写且只能由字母、数字和下划线组成。注意不能以数字开头。

    想要让你编写的函数去执行的话,只要把你要执行的代码写在花括弧中间,然后去掉用它。

    function hello()
    {
      echo "Hello World!";
    }
    
    hello(); // 显示 "Hello World!";
    
    [ 阅读全文 ] 2010-04-08 10:25:39
  • 可以这么说,函数是PHP程序的心脏。被函数封装的每一段代码可在任何地方反复调用其价值不可估量——它是构造程序和面向对象开发的基石。

    在本章中,我们的焦点放在创建于管理函数——因此,本章着重讲解如果写函数,而不是如何使用。

    目录放出:

    • 2.1 - 基本语法
    • 2.2 - 返回值
    • 2.3 - 变量作用域
      • 2.3.1 - 参数传递
      • 2.3.1 - 可变个数传参
      • 2.3.1 - 引用传参
    • 2.4 - 总结
    [ 阅读全文 ] 2010-04-08 10:23:09
  • 本章涵盖了很多PHP应用开发的要点。简单来说,这些知识是开发的基本要素,因此你必须非常熟悉他们的能力和特殊需要。

    有很多基本的知识点我们也只是略微了解:数组、字符串、函数和对象。他们复杂到足以使用整个章节去分别介绍他们,因此,以下四个章节就详细介绍他们。

    [ 阅读全文 ] 2010-04-08 10:01:09