一、PHP基本语法

  1. PHP标记:一共有四种,只推荐使用第一种
  2. 语句结束符:分号
  3. 注释:行注释(//  #)和块注释(/*   */),注释的规范

二、常见的输出语句

  1. print
  2. echo
  3. var_dump
  4. print_r
  5. printf

三、变量

  1. 变量的组成:变量名和变量值组成,变量名引用变量值
  2. 内存的组成:堆区、栈区、用户代码区,全局数据区(变量区、常量区、静态变量区),变量名在栈区,变量值是在变量区中
  3. 变量的基本语法:$
  4. 变量的命名规则
  5. 可变变量:变量的名又可以用一个变量来代替
  6. 变量的基本操作
    • 增:声明变量
    • 删:删除变量,unset的行为:删除变量名空间,消除引用关系
    • 该:修改变量的值
    • 查:获取变量的值,输出变量
  7. 变量间的传值
    • 值传递:传递后两个变量独占占用各自的变量名空间和变量值空间,互补干扰
    • 引用传递:传递后两个变量的变量名共同引用相同的变量值空间
  8. 预定义变量
    • $_SERVER
    • $_GET
    • $_POST
    • $_REQUEST
  9. 其他

四、常量

  1. 常量的定义:define('名’,值,是否不区分大小写)   const 常量名=常量值
  2. 常量的语法意义:用来规范数据保证数据在运行的过程中不被改变
  3. 判断常量是否存在:defined(‘常量名’),返回一个布尔值
  4. 常量的命名规则,特殊的常量名使用constant(‘常量名’)方式进行访问
  5. 获取所有的常量:get_defined_constants()
  6. 预定义常量
    • 含义
  7. 魔术常量:该常量的值由其所在的位置决定

五、数据类型

1.数据类型简介

    • 程序 = 数据结构 + 算法
    • PHP的数据类型:三大类,8小类

2.进制及进制转换

  1. 其他进制转换为十进制:按权展开!
  2. 十进制转二进制
    1. 整数

      • 除二取余法
      • 填充法
    2. 小数:乘二取整
  3. 十进制转其他进制
    • 整数:除 n 取余
    • 小数:乘 n 取整
  4. 八进制、二进制、十六进制直接的互转
    1. 二、八之间的互转

      • 八转二:一拆三(421码)
      • 二转八:三并一
    2. 二、十六之间的互转
      • 十六转二:一拆四
      • 二转十六:四并一
    3. 八、十六之间的互转
      • 八转十六:先一拆三,再四并一
      • 十六转八:先一拆四,再三并一

3.整型数据

  1. 表示形式

    • 十进制
    • 八进制,以0开头
    • 十六进制,以0x开头
  2. 在内存中的形式:二进制的补码的形式存放的
  3. 原码、反码和补码的概念

4.浮点型数据

  1. 表示形式:
    1. 小数形式
    2. 指数形式
      • e不区分大小写
      • e后必须要有数字
      • e后必须是整数
  2. 在内存中的形式:只能以指数的形式存放
  3. 浮点数的比较:不要使用浮点数进行比较,因为会浮点数会丢失精度

5.布尔型数据

  1. 只有true和false两个值,不区分大小写
  2. 在进行逻辑判断的时候,以下的值会当成false进行处理
    • 整数0
    • 浮点数0:0.0
    • 字符串0:’0’
    • 空字符串:’’
    • 空类型:NULL
    • 空数组:array()
    • 对象和资源型永远为真!

6.字符串数据

  • 单引号
  • 双引号
  • 定界符:Heredoc
  • 定界符:Nowdoc

7.特殊数据类型

  • NULL类型
  • resource型

8.类型转换

  1. 类型自动转换

    • 字符串型自动转换为数值型
    • 其他类型自动转换为布尔型
  2. 类型强制转换
    • 利用类型强制转换运算符()来完成的!
    • 使用(array)进制强制转换的时候的注意事项

9.类型相关函数

  • 类型相关的函数

    • gettype
    • settype
    • isset
    • empty
    • is_type系列

六、运算符

1.几个概念

a.运算符的概念

b.运算符的分类

c.运算符的优先级和结合性

d.表达式和语句

2.算术运算符

    • 求余运算符:在运算之前先把两个操作数都自动转换为整型,符号是由被除数决定的
    • 自增自减:++和——在前面和在后面的区别

3.赋值运算符

    • 复合的赋值运算符
    • 赋值运算符的结合性:右结合
    • 赋值表达式的值就是被赋值的那个变量的值$a = 100

4.字符串连接符

    • 主要和逗号的区别
    • 在运算之前是将两边的操作数都自动转换为字符串类,然后进行横向的“拼接”

5.关系运算符

    • =和==的区别
    • ==和===的区别

6.逻辑运算符

    • 逻辑与 && 或者and
    • 逻辑或 ||  或者 or
    • 逻辑非 !
    • 逻辑异或 xor
    • 注意短路运算

7.条件运算符

    • 形式:表达式1 ? 表达式2 : 表达式3
    • 也有短路运算的行为,相当于简单的if……else语句

8.位运算符

    • 按位与 &
    • 按位或 |
    • 按位非 ~
    • 按位异或 ^
    • 按位左移:<<,右边补0
    • 按位右移:>>,左边正数补0,负数补1

9.其他运算符

    • new、clone、instanceof、@

七、流程控制

1.流程控制简介

    • 三大结构:顺序、选择、循环
    • 算法的表示:流程图、伪代码、自然语言

2.if语句

    • 条件执行:只有if没有else
    • if……else……
    • if……elseif……

3.switch语句

    • 开关语句:一旦case后面的表达式的值和switch后面表达式的值一致,开关就打开了,一直遇到右花括号或者break语句为止!
    • 与if语句的区别:if语句是条件分支,switch语句是状态分支

4.while语句

    • 当型循环:里面的循环体有可能一次都不执行
    • 百钱买百鸡:面向过程的编程思想——自顶向下,逐步细化!

5.do-while语句

    • 直到型循环:里面的循环体至少要执行一次
    • 辗转相除法求最大公约数:体会while循环和do-while循环的区别

6.for语句

    • 使用的最多,因为最简洁紧凑
    • 执行流程
    • 表达式1、表达式2、表达式3都可以省略

7.循环的中断语句

    • continue:结束当前的本次循环,继续下一次循环
    • break:结束当前整个循环
    • 中断的层次:默认值为1

8.流程控制语句的替代语法

    • 把所有的左花括号都用冒号来代替
    • 整个流程控制语句结束后,再用endIf、endWhile、endFor、endForeach等来结束
    • do-while没有这种替代语法

9.文件载入

  1. 体现了网站的分层设计,以提高代码的重用性
  2. 有四种不同的载入的方式,只是语法上的一些差异
  3. 载入的原理(过程)
    • 退出PHP模式,进入HTML模式
    • 将目标文件内的源代码载入到当前位置(相当于将其中的源码复制到当前载入的位置)
    • 将被载入的源代码先进行预编译然后执行(文件的载入是发生在执行阶段)
    • 再次进入PHP模式
  4. 载入时的路径问题
    • 相对路径:./    ../
    • 默认路径:可以在php.ini中进行配置(include_path)
    • 绝对路径:一般都要先定义目录常量
  5. 四种载入方式的区别
    • include和require
    • include和include_once

10.脚本的执行控制

    • die或exit
    • sleep

八、函数

1.函数的定义

2.函数的组成

  1. 函数名
  2. 函数参数列表
  3. 函数体

3.函数调用

4.可变函数

函数名可以用一个变量来代替

5.匿名函数

6.函数的参数

  1. 形参和实参
  2. 参数的值传递和引用传递
  3. 形参的默认值
  4. 参数的数量问题
    1. 实参多于形参
    2. 实参少于形参:只有一种正确的情况,那就是形参有默认值的时候
    3. 不定参数的函数
      • 基本思想:干脆一个都不定义
      • func_get_args()用来接收实参的值,是一个索引数组
      • func_get_arg()用来获取某一个实参的值,索引是从0开始
      • func_num_args(),用于获取实参的数量
  5. 函数体
    • return语句
    • 函数内允许出现多个return语句,但是只能执行其中的一条
    • 如果一个函数内确实有很多的值需要返回,一般的做法就是把这些值放到一个数组(对象)里面,然后返回这个数组就行了
  6. 函数的作用域
    • 全局作用域(全局变量)
    • 局部作用域(局部变量)
    • 超全局作用域(预定义变量)
    • $GLOBALS
    • 关键字global

7.变量的生命周期

    • 概念:与变量的作用域的区别
    • 静态局部变量:使用关键字static

8.函数的递归调用

    • 概念:就是函数在执行的时候自己调用自己,不是一种新的语法,而是一种算法的描述
    • 递归调用的关键点:递归出口,递归点,写程序的时候先写递归出口,然后再写递归点
    • 特点:代码书写比较简单,本质上就是以空间换取时间

10.字符串函数

    • strlen
    • substr
    • strtolower|strtoupper
    • ucfirst:首字母大写
    • strrev
    • strpos
    • strrpos
    • strchr|strstr
    • strrchr
    • trim
    • str_replace(要替换的字符,替换成什么字符,从哪个字符串替换);

11.时间函数

    • time:返回一个时间戳
    • date:将一个时间戳格式化为指定的格式(常见的时间占位符:Y-m-d H:i:s)
    • strtotime
    • microtime,加上参数true就是返回一个浮点型的时间戳

12.数学函数

    • abs
    • sqrt
    • pow
    • ceil|floor
    • round
    • rand|mt_rand

九、数组

  1. 数组初步

    1. 数组创建:显示创建,隐式创建、利用强制类型转换符创建
    2. 数组访问:中括号语法
    3. 数组分类:
      1. 键值之间的关系:索引数组和关联数组
      2. 数组的维度:一维和多维数组
  2. foreach遍历
    1. 基本语法
    2. 几个细节
    3. 数组的指针:reset,next、current、key

PHP核心编程知识点的更多相关文章

  1. 学习《Python核心编程》做一下知识点提要,方便复习(一)

    学习<Python核心编程>做一下知识点提要,方便复习. 计算机语言的本质是什么? a-z.A-Z.符号.数字等等组合成符合语法的字符串.供编译器.解释器翻译. 字母组合后产生各种变化拿p ...

  2. 《Windows核心编程》第5版 学习进度备忘

    学习资源:<Windows核心编程>第5版 知识基础支持: 本书与<Windows程序设计>第5版珍藏版结合很好,二者重叠内容不多,二者互补性强,而且相关方面的优秀书籍 跳过的 ...

  3. 《Windows核心编程》之“完成端口”(对所有IO都是如此,不仅仅是对socket)

    <Windows核心编程>第10章开头部分一再强调:“IO Completion Port”是“构建高性能.可升缩的应用程序”的最佳设施之一,它不仅适用于处理设备IO,也适用于其它越来越多 ...

  4. 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

    目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...

  5. SpringCloud、Nginx高并发核心编程 【2020年11月新书 】

    文章太长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典极品 : 三大本< Java 高并发 三部曲 > 面试 + 大厂 + 涨薪必备 疯狂创客圈 经 ...

  6. Qt on Android 核心编程

    Qt on Android 核心编程(最好看的Qt编程书!CSDN博主foruok倾力奉献!) 安晓辉 著   ISBN 978-7-121-24457-5 2015年1月出版 定价:65.00元 4 ...

  7. windows核心编程 - 线程同步机制

    线程同步机制 常用的线程同步机制有很多种,主要分为用户模式和内核对象两类:其中 用户模式包括:原子操作.关键代码段 内核对象包括:时间内核对象(Event).等待定时器内核对象(WaitableTim ...

  8. windows核心编程---第九章 同步设备IO与异步设备IO之同步IO

    同步设备IO 所谓同步IO是指线程在发起IO请求后会被挂起,IO完成后继续执行. 异步IO是指:线程发起IO请求后并不会挂起而是继续执行.IO完毕后会得到设备的通知.而IO完成端口就是实现这种通知的很 ...

  9. windows核心编程---第八章 使用内核对象进行线程同步

    使用内核对象进行线程同步. 前面我们介绍了用户模式下线程同步的几种方式.在用户模式下进行线程同步的最大好处就是速度非常快.因此当需要使用线程同步时用户模式下的线程同步是首选. 但是用户模式下的线程同步 ...

随机推荐

  1. SQL Server:字符串函数

    以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...

  2. 解猜数字(XAXB)

    我的想法是:把所有备选答案当做正确答案和猜的数字对比,如果得出XAXB和给出的XAXB相同则保留 代码 ; ; List<string> number = new List<stri ...

  3. windows环境下无法引用全局安装的模块问题

    问题 在node项目中,往往需要安装一些依赖的包,通常我们采取全局安装的方式,来减少一些包重复安装带来的烦恼. 但是全局安装后出现无法使用的情况,可能是你NODE_PATH没有设置或者不正确造成的. ...

  4. 烂泥:【解决】NFS服务器使用showmount –e命令报错

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 今天在NFS服务器使用showmount –e查看NFS共享目录时,发现系统一直显示如下错误: clnt_create: RPC: Port mappe ...

  5. 准备使用 Office 365 中国版--邮箱迁移

    微软产品一贯的作风是从来不缺文档和教程,Office 365也不例外.无论是最终用户还是企业IT管理员,都可参照Office 365使用指南顺利的开启Office 365之旅.不过比较奇怪的是,貌似很 ...

  6. 大话设计模式C++版——工厂方法模式

    工厂方法模式是以简单工厂模式为基础的,如果未了解简单工厂模式的同学可先浏览<大话设计模式C++版——简单工厂模式>.在简单工厂模式中,提到过简单工厂模式的缺陷,即违背了开发—封闭原则,其主 ...

  7. [转]Hide or Remove jquery ui tab based on condition

    本文转自:http://stackoverflow.com/questions/19132970/hide-or-remove-jquery-ui-tab-based-on-condition 问: ...

  8. JDK环境变量详细讲解

    首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-8u65-windows-x64 下载地址: http://www.oracle.com/technetwork/java/ja ...

  9. Java的各种工具类

    下面是java的各种工具,包括获取时间和时间比较,检验集合和字符串是否为空和长度大小等等 1 import java.io.BufferedReader; import java.io.File; i ...

  10. Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)【转】【修改】

    一.基本概念: 1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点. 2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成 ...