·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> PHP笔记(PHP初级篇)

PHP笔记(PHP初级篇)

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php笔记(PHP初级篇)

学习完HTML和CSS后,终于要开始学习PHP啦!前面的铺垫只为后路的畅顺!

PHP环境搭建:

企业中常用到的环境是:linux+Apache+MySQL+PHP

学习环境是:Windows+Apache+MySQL+PHP

工具

  • Apache 2.4.4
  • MySQL 5.6.23
  • PHP 5.5.22

安装教程:php2014.9.5安装教程

PHP源码学习网站

  • 站长之家
  • 源码天堂
  • 脚本之家
  • 源码之家
  • A5源码

帮助文档:php_enhanced_en.chm

PHP概述

  • PHP(Hypertext PerPRocessor)超级文本预处理器
  • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言
  • 是一种网站开发语言(B/S结构)
  • 支持大多数操作系统和数据库、服务器
  • 开源

PHP开发步骤

  1. 编写源文件
  2. 将原文件上传到web服务器中
  3. 使用浏览器访问

PHP标记格式

  • xml风格:<?php…?> (推荐)
  • 简短风格:<? ... ?> (需要开启php.ini中的short_open_tag)
  • asp风格:<% ... %> (需要开启php.ini中的asp_tags)
  • 脚本风格:<script language="php"> ... </script>

※PHP编码必须使用utf-8无BOM格式,因为其他格式会有额外的输出,导致header函数报错

※纯PHP文件,建议结束不用“?>”,避免加载该文件时出错,导致header函数报错

PHP注释

  • PHP的注释不会加载到网页中,不影响网页加载速度;而HTML的注释会加载到网页中,影响网页加载速度
  • 单行注释:// ...
  • 多行注释:/* ... */,不允许嵌套
  • 脚本注释:# ... ,也是单行注释
  • 注释作用
    • 解释代码,一般写在被解释代码的上边或右边
    • 调试代码,使不注释代码不能执行,来检查错误

变量:会改变的量

  • 作用:保存一个值
  • 命名:
    • 必须以“$”开头
    • 第二位必须为大小写字母或下划线
    • 后接大小写字母、下划线和数字
    • 大小写敏感
    • 无需定义类型
  • 声明
    • PHP是一种非常弱的类型语言,变量没有固定的数据类型
    • 变量第一次赋值时,被声明
  • 赋值
    • 变量可直接赋值,无需转换类型
    • 可连续赋值,如“$a=$b=$c=4”
  • 范围
    • 局部变量:在函数中声明的变量,只能在函数中使用
    • 全局变量:从变量声明开始知道程序结束,都能使用
    • 静态变量:在函数中多次调用中共同使用
      • 存储在静态代码段中
      • 同一函数,多次调用,只在第一次调用时声明到内存中

可变变量:一个变量的变量名可以动态的设置和使用

引用传值:不同的名字访问同一个变量内容

※在函数中,使用关键字global调用全局变量

※函数中,使用关键字static声明静态变量

基本数据类型

  • 标量类型
    • 整型(integer):
      • 十进制:$a = 100;
      • 八进制:$a = 0123;
      • 十六进制:$a = 0x1A;
      • 负数:$a = -100;
      • 科学计数法:$a = 1E3;(1*10的3次方)
    • 浮点型(float/double):
      • 有小数点即浮点类型:$b = 100.01;
      • 科学计数法:
        • $b = 2.2E5;(2.2*10的5次方)
        • $b = 7e-5;(7*10的-5次方)
      • 负数:$b = -100.01; 
      • 整型超出范围,自动转换为浮点类型

 ※浮点数精度有限,不要进行“==”对比,不能进行高精度运算

      • 布尔类型(boolean):$c = true;
        • 取值:true or false
      • 类型转换时,以下值被认为是false
        • boolean值:false
        • 整型值:0
        • 浮点值:0.0
        • 空字符串和字符串"0"
        • 没有成员变量的数组
        • 没有单元的对象(仅适用于PHP4)
        • 特殊类型null
    • 字符串类型:$d = "abc";
      • 只要用引号引起来的,都是字符串类型
      • 单引号与双引号区别:
        • 双引号内的变量不会解析,单引号不会解析
        • 双引号中的变量要与其他字符分开时,用大括号分割
        • 单引号与双引号可以相互包含在内,作为字符使用
        • 单引号中的转义字符会失去效果(除“\'”和“\\”),双引号中的转义字符则不会
        • 双引号效率要低于单引号
      • 字符串连接符“."
      • 定界符:

          <<<定界符名称

          ......

          定界符名称

        • 定界符结尾时,必须顶置独占一行
        • 可以解析变量和转义字符
  • 复合类型
    • 数组类型:$e =array(1,2,3);
    • 对象类型:$f = new object();
  • 特殊类型
    • null类型:
      • 赋值:$g = null;
      • 为赋值的变量
      • 赋值后,被unset()函数销毁的变量
    • 资源类型:$h = fopen("http://www.baidu.com","r");

※使用var_dump()函数查看数据类型;

※使用unset()函数,销毁变量

※使用isset()函数判断变量是否被赋值,当变量为null类型时,返回false,否则返回true

※使用empty()函数判断变量是否为空,若变量转换为布尔类型为false情况,则返回true,否则返回false

※判断数据类型,使用is_mixed,如is_int,判断是否为整型;is_string,判断是否为字符串类型

伪数据类型:为确保帮助文档的易读性,而设计出来的类型,编写代码时不使用

  • mixed:任意数据类型
  • number:数字,包括integer和float
  • callback:回调函数

数据类型转换

  • 自动数据类型转换
    • bool和null→integer:直接输出时,false和null无任何输出,做运算时,转为0;
    • string→integer:从左到右,将遇到的第一个整数转换为integer类型,遇到“1e2”之类的科学计数法时,也会转换
    • string→float:从左到右,将遇到的第一个小数转换为float类型,遇到“1.0e2”之类的科学计数法时,也会转换
  • 强制数据类型转换
    • 在变量前使用(mixed),来强制转换数据类型,如$a = (int)$a;

常量:亘古不变的量

  • 命名:与变量一样,但不以“$”开头,默认区分大小写
  • 定义:使用define()函数,booldefine(string name,mixed value,[bool case_insensitive]) ;
    • name:常量名
    • value:常量值,只能使用标量数据类型
    • case_insensitive:是否大小写敏感,为true时,大小写不敏感
  • 特点:
    • 定义后,不能更改,不能销毁
    • 范围是全局的
    • 名称建议使用大写,与变量区分

※使用get_define_constants()函数查看已定义的常量

※系统已自带大量的常量,常用的__LINE__、__FILE__、__CLASS__、__FANCTION__、__METHOD__、PHP_OS、PHP_VERSION

PHP运算符

  • 一元运算符:只有一个操作数:++、--、!
      • bool值自增或自减,值不变
  • 二元运算符:有两个操作数;
    • 算术运算符:+、-、*、/、%
      • bool值进行二元运算,true作为1,false作为0
    • 字符串运算符:.、.=
      • 连接字符串的运算符
    • 赋值运算符:=、+=、-=、*=、/=、%=、.=
      • +=、-=、*=、/=、.=都是先赋值后运算的
    • 比较运算符:==、>、>=、<、<=、!=、===、!==
    • 逻辑运算符:and或&&、&、or或||、|、not或!、xor
      • ||和or、&&和and会使逻辑短路,即左边的表达式符合条件,则不执行右边
      • &和|不会使逻辑短路,所有表达式都会执行
    • 位运算符:&、|、^、~、>>、<<
  • 三元运算符:有三个操作数;? :
  • 特殊运算符:
    • ``(反引号):将反引号中的内容作为系统命令执行
      • 等价于shell_exec()函数
    • @:错误控制运算符,放在表达式前,屏蔽该表达式可能产生的notice和warning错误,致命错误无法屏蔽;@exp
    • =>:数组下标指定符,通过此符号指定数组的键与值;key => value
    • ->:对象成员访问符,访问对象中的成员属性和成员方法
    • instanceof:类型运算符,用来测定一个给定的对象是否来自指定的对象类;对象 instanceof 类名

HTML的特点:

  • 基于请求/响应
  • 无状态
  • 请求方式:GET和POST

GET请求

  • 使用form表单发送请求
  • 直接在URL中输入参数
  • 使用超链接将URL连同参数一起发送请求;<a href="./send.php?user=admin&pass=123">超链接</a>
  • 使用全局变量$_GET[]接收请求

PHP基本结构

  • 顺序结构:程序按照至上而下的流程执行
  • 分支结构:
    • 单一条件分支结构:if(exp)
    • 双向条件分支结构:if(exp)...else...
    • 多项条件分支结构:if(exp)...elseif/(else if)(exp2)... ...else...、switch...case...
    • 巢状条件分支结构:分支结构嵌套使用
  • 循环结构
    • 条件型循环while(exp)...:先判断,再循环
    • do...while(exp)...:先循环,再判断
    • 计数型循环for(exp)...:先判断,再循环
    • foreach(array as varible):数组遍历循环

※break:终止当前循环,并跳出循环

※continue:终止单签循环,并进行下一次循环

※exit()和die():终止程序运行

※count()函数,统计数组元素个数

函数

  • 定义:
    • 被命名的
    • 独立的代码段
    • 执行特定任务
    • 可以返回特定的值
    • 调用后,才能执行
  • 优点
    • 提高代码的可重用性
    • 提高程序的可维护性
    • 提高程序的可靠性
    • 提高程序的开发效率
    • 控制程序的复杂性
  • 声明
    • function 函数名([参数]*){

        函数体

      [return value;]

      }

    • 声明之前调用和声明之后调用均可
    • 命名与变量命名相似,不用$开头,大小写不敏感;推荐驼峰命名法
    • 函数名不能重名,注意系统函数
  • 参数:可以向函数传参,修改函数的属性和行为
    • 形参:声明函数时,定义的参数
    • 实参:调用参数时,传给函数的值
  • 返回值:
    • 使用return语句,返回特定值
    • return会终止函数执行
  • 变量函数:
    • 将函数名赋值给变量,调用时,在变量名后加“()”

※具有相同功能的函数,优先使用系统函数

  • 分类
    • 常规函数:有固定数量的参数,参数传递的方式为值传递
    • 引用传递函数:有固定数量的参数,参数的传递方式为引用传递
      • 声明:在形参前面使用“&”,表示该参数为引用传递参数
      • 调用:该参数的实参必须为变量,不可为常量
      默认函数:含有可选参数,在查看该函数使用时,“[]”内的参数表示可选参数
      • 声明:可选形参声明同时赋值
      • 调用:形参与实参从左到右相对应,可选参数可无实参对应
    • 不定函数:参数的数量不固定,可以没有,也可以无数个,查看该函数使用时,“...”表示参数无限制个数
      • 声明:声明函数时,不声明形参
      • 调用:直接在调用函数时,使用多个实参
      • 实现:
        • 使用func_get_args()方法取得参数,并返回数组
        • 使用func_get_arg(int$arg_num)方法取得指定的参数,返回参数值
    • 回调函数:参数中包含函数
      • 声明:形参直接用变量声明
      • 调用:实参为被调用的函数时,传递函数名称字符串
      • 实现:
        • 使用代表函数的形参,作为变量函数使