php
PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them the same way you normally create regular HTML pages.(像html一样被编辑)
PHP 能够生成动态页面内容
PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
PHP 能够接收表单数据
PHP 能够发送并取回 cookies
PHP 能够添加、删除、修改数据库中的数据
PHP 能够限制用户访问网站中的某些页面
PHP 能够对数据进行加密
require() include() require_once() include_once()
超全局变量
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
PHP数据类型
数据类型之变量
四种标量类型:
boolean (布尔型)
integer (整型)
float (浮点型, 也称作 double)
string (字符串)
当双引号中包含变量(即有$符号时)时,变量会与双引号中的内容连接在一起;
当单引号中包含变量时,变量会被当做字符串输出。
heredoc技术是php用来引用字符串的一种方式
两种复合类型:
array (数组)
php有两种数组:索引数组,关联数组。
object (对象)
两种特殊类型:
resource (资源)
资源是由专门的函数来建立和使用的,例如打开文件、数据连接、图形画布。我们可以对资源进行操作(创建、使用和释放)。
NULL (NULL)
表示一个变量没有值,1 当被赋值为NULL,2 或者尚未被赋值,3 或者被unset()
数据类型之常量
变量
它通过使用PHP中的函数define()定义。
bool define(string $constant_name, mixed $value[, $case_sensitive = true])
系统常量
系统常量是PHP已经定义好的常量,我们可以直接拿来使用
常用的系统常量
__FILE__ 当前PHP文件名
__LINE__ 当前PHP文件中所在的行数
__FUNCTION__ 当前所执行的函数
__CLASS__ 当前所执行的类
PHP_VERSION PHP的版本
PHP_OS 当前服务器的操作系统
使用常量
1 使用常量名直接获取值
2 第二种是使用constant()函数
判断常量是否已经定义
defined()函数
bool defined(string constants_name)
运算符
PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接运算符、错误控制运算符。
算术运算符
加,减,乘,除,取余
+ , - , * , / ,%
赋值运算符
= 把右边表达式的值赋给左边的运算数
& 引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
比较运算符
三元运算符
(expr1)?(expr2):(expr3)
逻辑运算符
and 与
&& 与
|| 或
or 或
! 非
xor 异或(一个为true则为true)
字符串拼接运算符
(1)连接运算符(“.”)
(2)连接赋值运算符(“.=”)
错误控制运算符
语言结构语句
顺序结构
默认执行顺序,一行接着一行
条件结构 之if…else… if...else if... if...else if...else..
条件结构之switch…case…
break的作用是阻止代码进入下一个case 中继续执行。
循环结构之while循环语句
while(条件 ){
}
do{
}while(条件 )
循环结构之for循环语句
循环结构之foreach循环语句
一般有两种使用方式:不取下标、取下标。
(1)只取值,不取下标
<?php
foreach (数组 as 值){
//执行的任务
}
?>
(2)同时取下标和值
<?php
foreach (数组 as 下标 => 值){
//执行的任务
}
?>
函数
PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言。
自定义函数
PHP函数的定义方式:
1.使用关键字“function
”开始
2.函数名可以是字母或下划线开头:function name()
3.在大括号中编写函数体:
函数返回值
使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL。
可变函数
内置函数
PHP内置了很多标准的常用的处理函数,包括字符串处理、数组函数、文件处理、session与cookie处理等。
判断函数是否存在
经常会先使用function_exists判断一下函数是否存在。
同样的method_exists可以用来检测类的方法是否存在。
类是否定义可以使用class_exists。
文件是否存在file_exists
类与面向对象
类和对象
通常定义一个汽车类的方法为:
class Car {
$name = '汽车';
function getName() {
return $this->name;
}
}
创建一个类的实例,可以使用new关键字创建一个对象
类的属性
属性声明是由关键字 public,protected 或者 private 开头,后面跟一个普通的变量声明来组成。
public 外部可以调用
protected 受保护的,受保护的属性不允许外部调用
private 私有的,不允许外部调用
class Car {
//定义公共属性
public $name = '汽车'; //定义受保护的属性
protected $corlor = '白色'; //定义私有属性
private $price = '100000';
}
一般通过->对象操作符来访问对象的属性或者方法,对于静态属性则使用::双冒号进行访问。当在类成员方法内部调用的时候,可以使用$this伪变量调用当前对象的属性。
类的方法
在面向过程的程序设计中function叫做函数,在面向对象中function则被称之为方法。
同属性一样,类的方法也具有public,protected 以及 private 的访问控制。
使用关键字static修饰的,称之为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号::。
构造函数和析构函数
_construct() _destruct()
static静态关键字
静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名
的方式进行调用。静态属性不允许对象使用->操作符调用。
静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。
访问控制
类属性必须定义为公有、受保护、私有之一。
被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。
对象继承
重载
PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。
对象的高级特性
字符串操作
字符串
通过下面的3种方法来定义:
1、单引号
2、双引号
3、heredoc语法结构
去除字符串首尾空格
trim() 去除一个字符串两端空格
rtrim() 去除一个字符串右部空格
ltrim() 去除一个字符串左部空格
获取字符串长度
strlen()
md_strlen() // 获取字符串(中文)的长度
字符串截取
substr()
substr(字符串变量,开始截取的位置,截取个数) // 英文
mb_substr()
mb_substr(字符串变量,开始截取的位置,截取个数, 网页编码) // 中文
查找字符串
strpos(要处理的字符串, 要定位的字符串, 定位的起始位置[可选])
替换字符串
str_replace(要查找的字符串, 要替换的字符串, 被搜索的字符串, 替换进行计数[可选])