一、PHP简介

  1. PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言
  2. PHP 可以生成动态页面内容,可以创建、打开、读取、写入、关闭服务器上的文件,可以添加、删除、修改您的数据库中的数据,可以加密数据,可以限制用户访问您的网站上的一些页面

二、PHP使用

1、语法:

默认扩展名   .PHP

<?php
// PHP 代码
?>

PHP 中的每个代码行都必须以分号结束,PHP有两种在浏览器输出文本的基础指令:echoprint

2、变量

  • 变量以 $ 符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
  • 变量名不能包含空格
  • 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
  • 给变量赋值文本时,需要对文本使用引号 “ ”

 可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内

使用常量时不能在常量名前添加$ 符号,不然会将常量转换成新的未定义变量使用,会导致报错

global 关键字用于函数内访问全局变量。在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global ,也可以写为$GLOBALS[index]的数组

static 关键字用于当一个函数完成时,它的所有变量通常都会被删除,而不希望某个局部变量被删除则需要使用 static 关键字

local(本地的)—— 局部变量的作用域

在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问。

global(总体的)—— 全局变量的作用域

static(静态的)—— static 作用域

parameter(参数)——参数作用域

参数是通过调用代码将值传递给函数的局部变量。

3、输出方式

echo:可以输出一个或多个字符串,并且没有返回值;使用的时候可以不加括号,也可以加括号: echo 或 echo()

print:只允许输出一个字符串,返回值总为 1;使用的时候可以不加括号,也可以加括号: print 或 print()

print_r(): 可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。

var_dump(): 判断一个变量的类型与长度,并输出变量的数值,如果变量有值输出的是变量的值并回返数据类型。

var_dump 返回表达式的类型与值而 print_r 仅返回结果,相比调试代码使用 var_dump 更便于阅读

4、EOF

  • 以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号
  • 开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,也可以用其他任意字符,只要保证开始标记和结束标记不在正文中出现即可
  • 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接

5、数据类型

字符串:可以将任何文本放在单引号和双引号中

整型

  • 整数必须至少有一个数字 (0-9)
  • 整数不能包含逗号或空格
  • 整数是没有小数点的
  • 整数可以是正数或负数
  • 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。

浮点型:带小数部分的数字,或是指数形式

布尔型:TRUE 或 FALSE

数组:可以在一个变量中存储多个值

对象:对象必须声明,必须使用class关键字声明类对象。类是可以包含属性和方法的结构,然后在类中定义数据类型,最后在实例化的类中使用数据类型

NULL值:表示变量没有值,NULL 是数据类型为 NULL 的值。

资源类型:种特殊变量,保存了到外部资源的一个引用。常见资源数据类型有打开文件、数据库连接、图形画布区域等。使用 get_resource_type() 函数可以返回资源(resource)类型:

6、类型比较

  • 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
  • 严格比较:用三个等号 === 比较,除了比较值,也比较类型。

 7、字符串

  • 在 PHP 中,只有一个字符串运算符,并置运算符 (.) 用于把两个字符串值连接起来。
  • strlen() 函数返回字符串的长度(字节数)
  • strpos() 函数用于在字符串内查找一个字符或一段指定的文本,如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
  • 详细的String函数可以参考PHP 5 String 函数 | 菜鸟教程

 8、数组

  • array() 函数用于创建数组:array();
  • count() 函数用于返回数组的长度(元素的数量)
  • 遍历并打印数组中的所有值,您可以使用 for 循环
  • 遍历并打印关联数组中的所有值,您可以使用 foreach 循环
  • 数值数组 - 带有数字 ID 键的数组
  • 关联数组 - 带有指定的键的数组,每个键关联一个值
  • 多维数组 - 包含一个或多个数组的数组
  • sort() - 对数组进行升序排列
  • rsort() - 对数组进行降序排列
  • asort() - 根据关联数组的值,对数组进行升序排列
  • ksort() - 根据关联数组的键,对数组进行升序排列
  • arsort() - 根据关联数组的值,对数组进行降序排列
  • krsort() - 根据关联数组的键,对数组进行降序排列

9、循环

  • while - 重复执行代码块,直到指定的条件不成立
while (条件)
{
    要执行的代码;
}
  • do...while - 至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环
do
{
    要执行的代码;
}
while (条件);
  • for - 循环执行代码块指定的次数
for (初始值; 条件; 增量)
{
    要执行的代码;
}
  • foreach - 用于遍历数组
foreach ($array as $value)
{
    要执行代码;
}

10、魔术常量

由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了,并且不区分大小写

__LINE__ :文件中的当前行号

__FILE__ : 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名

__DIR__ : 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录

__FUNCTION__ : 函数名称

__TRAIT__ : Trait 的名字,Trait 名包括其被声明的作用区域

__CLASS__ : 类的名称。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写

__METHOD__ : 类的方法名。返回该方法被定义时的名字(区分大小写

__NAMESPACE__ :当前命名空间的名称(区分大小写

11、PHP面向对象

  • − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作

类使用 class 关键字后加上类名定义。
类名后的一对大括号({})内可以定义变量和方法。
类的变量使用 var 来声明, 变量也可以初始化值。
函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。
  • 对象 − 是类的实例

  • 成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可成为对象的属性

  • 成员函数 − 定义在类的内部,可用于访问对象的数据

  • 继承 − 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容

  • 父类 − 一个类被其他类继承,可将该类称为父类,或基类,或超类

  • 子类 − 一个类继承其他类称为子类,也可称为派生类

  • 多态 − 多态性是指相同的函数或方法可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性

  • 重载 − 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法

  • 抽象性 − 抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关

  • 封装 − 封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内

  • 构造函数 − 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中

  • 析构函数 − 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)

三、Tips(持续更新)

  1. 当使用 POST 方法时,变量不会显示在 URL 中,只有 GET 才会
  2. 在 PHP 中,既可以使用单引号 ( ‘ ‘ ) 也可以使用双引号 ( ” ” ) 来包围字符串
  3. 用户定义的函数和语言关键字对大小写不敏感

更多推荐

【网络安全学习】(四)PHP详细教程