继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

基础总结(一)-PHP基础知识回顾

weiyihigh
关注TA
已关注
手记 51
粉丝 104
获赞 364

重点概括
【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'
    <div>
    PHP heredoc技术
    <br />
    $var
    $vara
    </div>
    aaa;

echo <<<zhangshan
<hr />
<div>
PHP heredoc技术
<br />
$var
</div>
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 互为引用

外部文件引入:

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

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

图片描述

  • 五.正则表达式
    图片描述

图片描述
图片描述

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

  • 六.文件及目录

图片描述
图片描述

图片描述
图片描述

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

图片描述
图片描述

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

图片描述

方法重写
图片描述
图片描述
图片描述
图片描述
图片描述
文章参考(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(){
// ...
}

  • 九.网络协议
    图片描述

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

图片描述

打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP