zoukankan      html  css  js  c++  java
  • PHP核心编程知识点

    一、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
    喜欢就给个大拇指吧!
  • 相关阅读:
    第1年4月22日 IBInspectable巧妙用法 cornerRadius
    第1年4月15日
    第1年4月9日 Domain: com.apple.dt.MobileDeviceErrorDomain
    第1年4月7日 活体检测
    GPS 波段信号范围
    tomcat远程调试
    JdbcTemplate或hibernate动态建表
    jdk动态代理失效,事务自调用失效
    Tomcat 访问静态资源出现中文乱码解决办法(转)
    SQL Server 查看死锁进程(转)
  • 原文地址:https://www.cnblogs.com/BeiGuo-FengGuang/p/5927724.html
Copyright © 2011-2022 走看看