跳转到内容

PHP 编程/数据结构

来自维基教科书,开放的书,开放的世界

变量变量

[编辑 | 编辑源代码]

PHP 具有一个称为“变量变量”的遗留概念。这是一种更旧、更有限的编程概念,它出现在复合数据结构可用之前。由于 PHP 语言现在支持复合数据结构,变量变量的概念实质上已经过时

PHP 手册指出

   "Sometimes it is convenient to be able to have variable variable names. That is, a variable name which can be set and used dynamically."

这种方法在历史上被用在不支持复合数据结构的编程语言中。PHP 中没有可以使用变量获得的程序函数或算法,而不能通过复合数据结构获得。

此外,“变量变量”容易出错,并且需要更多维护开销。

数据结构是使用常规 PHP 变量表示复合实体的方式。

熟悉数据库设计和数据库实现的人知道数据库规范化的概念。

PHP 中的数据结构表示一个类似的概念。在处理复杂概念并将它们表示在 PHP 中时,数据结构是一种将 PHP 变量规范化以一致且统一地表示复杂概念的方式

PHP 本地结构

[编辑 | 编辑源代码]
  • 字符串是一种表示单个值(又称标量)的结构
  • 数组是一种表示值列表(又称向量)的结构

字符串示例

 $person_name = 'Alice';

数组示例

 $person_names = Array( 0=> 'Alice', 1=> 'Bob', 2=> 'Charlie',  );
 $alice_info   = Array( 0=> 'Alice', 1=> 'Female', 2=> '26', 3=> '[email protected]',  );

PHP 复合结构

[编辑 | 编辑源代码]
  • 简单字典是一种表示无序的名称-值对序列的结构。在原生 PHP 中,这是使用标准数组以及字符串作为索引来完成的。
  • 简单序列是一种表示有序值序列的结构。在原生 PHP 中,这是使用标准数组以及数字索引来完成的。
  • 简单表(aod)是一个或多个简单字典的有序序列,其中每个简单字典实例具有匹配的名称。
  • 简单表(aoa)是一个或多个简单序列的序列,其中每个简单序列实例具有对应的索引。

方括号方法允许您通过直接设置值来进行设置。例如,要使 $foobar[1] = $foo,您只需执行以下操作

简单字典示例

 $person_names = Array( 'person1'=> 'Alice', 'person2'=> 'Bob', 'person3'=> 'Charlie',  );
 $alice_info   = Array( 'first_name'=> 'Alice', 'sex'=> 'Female', 'age'=> '26', 'email'=> '[email protected]',  );

简单字典示例

$user_profile = Array(
  main => Array(
    first_name  => "Archibald",
    last_name   => "Shaw",
    sex         => "male",
    age         => "33",    
  ),
  guardian => Array(
    first_name => "",
    last_name => "",
  ),
  children => Array(
    0 => Array(
      first_name => "Sally",
      last_name => "Shaw",
    ),
    1 => Array(
      first_name => "Scott",
      last_name => "Shaw",
    ),
  ),
  
);

注释和参考文献

[编辑 | 编辑源代码]

[1]


华夏公益教科书