查看: 431|回复: 0

[PHP学习] 基础总结(一)-PHP基础知识回顾

发表于 2018-4-10 08:00:04

重点概括
【1】.数据类型
【2】.运算符
【3】.流程控制
【4】.自定义函数以及内部函数
【5】.正则表达式
【6】.文件及目录
【7】.会话控制技术
【8】.面向对象
【9】.网络协议

一.PHP数据类型
三大数据类型(标量,复合,特殊)
在PHP中,一共支持八种原始数据类型:它们是4种标量类型,boolean(布尔型),integer(整型),float(浮点型)和string(字符串型);两种符合类型,array(数组)和object(对象);两种特殊类型,resource(资源)与空值(null)
字符串的定义方式
1.单引号
要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\)。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。

2.双引号
用双引号定义的字符串最重要的特征是变量会被解析,详见变量解析。

3.heredoc和newdoc
heredoc 类似于双引号
newdoc 类似于单引号
两者都是用来处理大文本
代码
header("Content-type: text/html; charset=utf-8");
$var = 'PHP变量';
$vara = 'PHP变量555555';
echo <<<'aaa'


PHP heredoc技术


$var
$vara

aaa;

echo <<




PHP heredoc技术


$var

zhangshan;

代码实现区别 变量加引号和不加引号。
数据类型

标量:
1.浮点类型
浮点类型不能用于比较计算的判断(原因 计算机计算基于二进制,有精度缺失)
例子:0.1+0.7==0.7999!=0.8
2.布尔类型(7种)
0,0.0,'',false,array(),NULL
3.数组类型
超全局数组
$GLOBALS,$_GET,$_POST,$_REQUEST,$_SESSION,$_COOKIE,$_SERVER,$_FILES,$_ENV

$_SERVER
1.记录请求的结果码
2.记录请求过来的必要信息(请求ip 来源地址 请求时间,请求方式,来源地址解析等)
3.记录服务器的配置信息(域名路径,环境配置信息,执行路径,执行文件路径等)
php引用变量
定义:
php引用变量:不同变量名指向同一地址。 符号&
本质:
多个变量共用一个内存空间。(memory_get_usage内存空间使用情况查看函数,xdebug_debug_zval查看变量的情况)
直接变量之间的赋值在赋值变量改变的时候将会开辟新的内存空间。(一般的变量赋值给另外一个变量,内存空间还是共用,但是在赋值变量改变的时候,PHP将会开辟新的内存空间保存不同的值)
注意:
unset其中一个引用变量不影响其他变量。
其中一个引用变量重新赋值,其他的变量值发生改变,其中一个变量如果是引用变量指向另外地址空间,则跳出和之前变量的共用空间,独立开辟新空间。
程序图解分析:
程序图解

data 值为array(b,c,c);

总结:多个变量之间共用空间通过&地址符赋值,单个变量通过unset变量取消引用或者通过地址符&重新赋值新地址,跳出和其他变量的共用空间。共用空间内的所有引用变量,其中一个变量改变其他变量值也会改变。

二.运算符
运算符优先级

@为屏蔽表达式发生全部错误信息运算符
图片描述

三.流程控制
PHP遍历数组的三种方式
1.for
2.foreach
3.list while each
图片描述

reset() reset — 将数组的内部指针指向第一个单元

PHP分支语句
1.If else:
图片描述

2.Switch case
图片描述

图片描述

Switch case 不同的值直接存放在索引数组里面 效率高于if分支。属于精确查询。代码如下
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}

四.自定义函数以及内部函数
图片描述
图片描述
不能直接把全局变量直接用到局部。需要设置全局可以如下:
图片描述
静态变量
图片描述
图片描述
图片描述
解释:常作为递归的判断方式。

图片描述
图片描述
图片描述

图片描述
$a $b 互为引用

外部文件引入:

图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述

图片描述
图片描述
综合考察函数
图片描述

图片描述

五.正则表达式
图片描述

图片描述
图片描述

图片描述
图片描述
图片描述

六.文件及目录

图片描述
图片描述

图片描述
图片描述

图片描述
图片描述
图片描述
图片描述

图片描述
图片描述

图片描述
图片描述
图片描述
图片描述
文件前面追加字符串思路
图片描述
图片描述

图片描述

七.php会话控制技术
具体可以参考文章(https://www.jianshu.com/p/7ec08ec8ba36)
(https://www.cnblogs.com/wswang/p/6062461.html)
图片描述
图片描述 八.面向对象
图片描述
文章(https://www.imooc.com/article/23924)
图片描述
图片描述
图片描述

方法重写
图片描述
图片描述
图片描述
图片描述
图片描述
文章参考(https://www.cnblogs.com/giantpanda/archive/2012/11/07/2759458.html)
构造函数
构造函数可以接受参数,能够在创建对象时赋值给对象属性
构造函数可以调用类方法或其他函数
构造函数可以调用其他类的构造函数
析构函数
析构函数是在销毁对象时,自动调用,不能显示的调用。
析构函数不能带参数。
在以下几种情况下可能会调用析构函数(但不一定):

PHP页面加载完毕之后;
unset()类;
变量引用指向别的对象或值时;
PHP的内存回收机制和JAVA的很类似,对没有任何引用的对象进行销毁回收,采用引用计数器的技术。
// 构造函数
function __construct([argument1,argument2,...,argumentN]){
/ Class initialization code /
}

// 析构函数
function __destruct(){
// ...
}

九.网络协议
图片描述

图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述
图片描述

图片描述



回复

使用道具 举报