PHP的知识结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.4处理数组的函数
(1).数组操作的基本函数
数组的键名和值 array_values($arr); 获得数组的值 array_keys($arr); 获得数组的键名 array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被后面的覆盖) in_array("apple",$arr); 在数组中检索apple array_search("apple",$arr); 在数组中检索apple ,如果存在返回键名 array_key_exists("apple",$arr); 检索给定的键名是否存在数组中 isset($arr[apple]): 检索给定的键名是否存在数组中
2.数组与数据结构篇
2.1数组
2.1.1数组概述
PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化, 因此可以把它当成真正的数组,或列表(向量),散列表 (是映射的一种实现),字典,集合,栈,队列以及更多可 能性。由于数组元素的值也可以是另一个数组,树形结构和 多维数组也是允许的。 <?php $foo[bar] = 'enemy'; echo $foo[bar]; // etc ?> 这个要把bar换成‘bar’,因为键值只能是整数或字符串
(7).递归函数
在 PHP 中可以调用递归函数。但是要避免递归函数/方 法调用超过 100-200 层,因为可能会使堆栈崩溃从而使当 前脚本终止。
(8).使用系统函数库 使用系统函数,最好先确定其规定的返回值类型, 如果传递给函数的参数类型与实际的类型不一致, 例如将一个 array 传递给一个 string 类型的变量, 那么函数的返回值是不确定的。在这种情况下, 通常函数会返回 NULL。但这仅仅是一个惯例, 并不一定如此。
一个可变变量获取了一个普通变量的值作为这个可 变变量的变量名。即$a = 'hello';$$a= 'word',则 echo "$a ${$a}";输出跟echo "$a $hello";都为 hello word
1.3变量类型
布尔型(boolean) 整型(integer) 浮点型(float和double) 字符串(String) 数组(Array) 对象(Object) 资源类型(Resource) NULL类型 伪类型 数据类型之间的转换
1.5PHP中的运算符 (不一一列举)
• • • • • • • • • 算数运算符 字符串运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 其他运算符 运算符优先级 表达式
1.6流程控制
1.6.1分支结构
(1)单一条件分支结构(if)
<?php if (expr) statement ?>//if 语句可以无限层地嵌套在其它 if 语句中
1.基本语法篇
1.1PHP语法格式
(1).PHP在Web开发中的应用
服务器端脚本语言,处理数据库,动态处理图片, 文件等
(2).PHP的环境搭建 服务器用Linux,web服务器用Nginx,数据库用MySQL, 后台语言是PHP (3).语言标记 指令分隔符“;”在一个 PHP 代码段中的最后一行可以 不用分号结束 (4).程序注释 单行注释//在 // ... ?> 或者 # ... ?> 之后的 HTML 代码将 被显示出来:?> 跳出了 PHP 模式并返回了 HTML 模式 多行注释/* */要避免嵌套注释的出现
(3).函数的工作原理和结构化编程 一个函数用途的伪代码: <?php function foo($arg_1, $arg_2, /* ..., */ $arg_n) { echo "Example function.\n"; return $retval; } ?>解决问题的标准方法 (4).php变量范围 大部分的 PHP 变量只有一个单独的范围,代码段内。 或者,这个单独的范围跨度同样包含了 include 和 require 引 入的文件。
(2).双向条件分支结构(else子句)
<?php if ($a > $b) { echo "a is greater than b"; } else { echo "a is NOT greater than b"; } ?>
(3).多向条件分支结构(也是用else子句)
<?php if ($a > $b) { echo "a is bigger than b"; } elseif ($a == $b) { echo "a is equal to b"; } else { echo "a is smaller than b"; } ?>
(3).联合使用list()、echo()和while循环遍 历数组 (4).使用数组的内部指针控制函数遍历数组
current($arr); 返回数组中的当前单元 pos($arr); 返回数组中的当前单元 key($arr); 返回数组中当前单元的键名 prev($arr); 将数组中的内部指针倒回一位 next($arr); 将数组中的内部指针向前移动一位 end($arr); 将数组中的内部指针指向最后一个单元 reset($arr; 将数组中的内部指针指向第一个单元 each($arr); 将返回数组当前元素的一个键名/值的构造数 组,并使数组指针向前移动一位 list($key,$value)=each($arr); 获得数组当前元素的键 名和值
(2).使用foreach语句遍历数组
foreach($array as $ key => $value){ echo "$key --> $value"; }//方法1,访问数组元素的键和值 foreach($array as $ value){ echo $value; }//方法2,访问数组元素值 $array为数组名称,$key为一个数组键名,&value为键 名对应值。foreach语句可以遍历数字索引数组和关 联数组
(3).魔术常量
__LINE__ 文件中的当前行号。 __FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被 包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径 (如果是符号连接,则是解析后的绝对路径),而在此之前的版本有 时会包含一个相对路径。 __DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文 件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则 目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) = __FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返 回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小 写字母的。 __CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该 类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母 的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时, __CLASS__ 是调用 trait 方法的类的名字。 __TRAIT__ Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返 回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作 用区域(例如 Foo\Bar)。 __METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的 名字(区分大小写)。 __NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在 编译时定义的(PHP 5.3.0 新增)。
1.4PHP中的常量
(1).常量的定义和使用
常量是一个简单值的标识符(名字)。如同其名称 所暗示的,在脚本执行期间该值不能改变(除了所 谓的魔术常量,它们其实不是常量)。常量默认为 大小写敏感。传统上常量标识符总是大写的。
(2).常量和变量
常量和变量有如下不同: 常量前面没有美元符号($); 常量只能用 define() 函数定义,而不能通过赋值 语句; 常量可以不用理会变量的作用域而在任何地方定义 和访问; 常量一旦定义就不能被重新定义或者取消定义; 常量的值只能是标量。
2.2数组的遍历
(1).使用for循环遍历数组
for语句只能用于数字索引数组的遍历。先用count ()函数计算出数组元素个数,以便作为for循环执 行的条件,完成数组的遍历,语法格式如下: for ($i=0;&i < count($array);&i++){ echo $array[&i]."<br/>"; } 注意:如果关联数组的关键字不是数字,就无法用 这个方法来遍历了
(5).程序中空白的处理
只有在<?php?>里面的内容才会被php解释器解析,所以php 可以在HTML文件里面混用。但当 PHP 解释器碰到 ?> 结束 标记时就简单地将其后内容原样输出(除非马上紧接换行 ) 直到碰到下一个开始标记,所以用到高级分离技术 <?php if ($expression == true): ?> This will show if the expression is true. <?php else: ?> Otherwise this will show. <?php endif; ?>
2.3预定义数组
服务器变量: $_SERVER 环境变量: $_ENV HTTP GET 变量: $_GET HTTP POST 变量: $_POST request变量: $_REQUEST HTTP 文件上传变量:$_FILES HTTP Cookies: $_COOLIE Session变量: $_SESSION Global变量: $GLOBALS

1.8PHP中的函数
(1).函数的定义
任何有效的 PHP 代码都有可能出现在函数内部,甚 至包括其它函数和类定义。 是编程的最小单位。
(2).自定义函数
PHP 中的所有函数和类都具有全局作用域,可以定 义在一个函数之内而在之外调用,反之亦然。 PHP 不支持函数重载,也不可能取消定义或者重定义已 声明的函数。
2.1.2数组的定义
(1).直接赋值的方式声明数组
如$arr['0'] = "php笔记";
(2).使用array()语言结构新建数组
可以用 array() 语言结构来新建一个数组。它接受任意数量 用逗号分隔的 键(key) => 值(value)对。键值可以被覆 盖
(3).多维数组的声明
如:
$fruits = array ( "fruits" => array ( "a" => "orange", "b" => "banana", "c" => "apple" ), .....
(4).多向条件分支结构(switch)
和其它语言不同,continue 语句作用到 switch 上的作用 类似于 break。如果在循环中有一个 switch 并希望 continue 到外层循环中的下一轮循环,用 continue 2。
1.6流程控制
1.6.2循环结构 (1).while语句 while (expr) statement (2).do..while循环 <?php $i = 0; do { echo $i; } while ($i > 0); ?> (3).for语句 for (expr1; expr2; expr3) statement
1.2php变量
(1).变量的声明
PHP 中全局变量在函数中使用时必须声明为 global。 其她数据类型可以直接赋值,不用声明类型。虽然 PHP里面变量不用初始化,但是会使变量默认false
(2).变量的命名
变量名第一个单词首字母小写,其余单词首字母大写, 遵循“驼峰式”命名约定。
(3).可变变量
(5).参数的传递
值传递 引用传递 可选参数 如果传入的是一个对象,可以更改该对象值
(6).变量函数
PHP 支持可变函数的概念。这意味着如果一个变量 名后有圆括号,PHP 将寻找与变量的值同名的函数, 并且尝试执行它。可变函数可以用来实现包括回调 函数,函数表在内的一些用途。 可变函数不能用于例如 echo,print,unset(), isset(),empty(),include,require 以及类似的语 言结构。需要使用自己的包装函数来将这些结构用 作可变函数。
相关文档
最新文档