【PHP学习笔记(一)】PHP的基本语法

PHP的语言标识

PHP是一种嵌入式脚本语言,以标识符表示PHP代码的所谓“短风格”表示方式

  • <? echo "这是一个演示。"?>
  • 正常情况下不推荐这种表示方式,而且在php.ini文件中,short_open_tags设置是默认关闭的
  • ASP风格
    • 照顾ASP使用者对PHP的使用,提供的表示风格
     <%
     //PHP代码
     %>
    

PHP的编码规范

什么是编码规范

  • 规定了某种语言的一系列默认编程风格,用来增强这种语言的可读性、规范性和可维护性。主要包括文件组织、缩进、注释、声明、空格处理、命名规范等

基本的编码规范

  • 表述
    • 每个语句以“;”结尾
  • 注释
    • 支持C,C++,Java语言风格注释方式,注释不能嵌套
    • 支持Shell风格
      • #这是Shell风格的注释内容
      • 一句注释占用一行
  • 空白
    • PHP对空格、回车造成的新航、Tab等留下的空白都遵循编码规范进行忽略;可以合理地运用空白符,增强代码的清晰性和可读性
  • 指令分隔符
    • 每个语句用分号结束命令,但是一段代码段的最后一行可以不用分号结束
  • 与HTML语言混合搭配
    • PHP解析器仅解析PHP开始和结束标记之间的内容,所以PHP文件中可以在标记之外的地方混搭内容。同时也可以使PHP嵌入到HTML文档中去。

常量

声明和使用常量

  • define (“常量名”,常量值,mixed value);
  • 常量名是一个字符串,往往使用大写的英文字母表示。常量值也可以是表达式。mixed value为可选参数,true为表示常量的名字支持区分大小写,false反之
  • 常量可以是很多种数据类型,像变量一样存储数值,但是无法改变,且具有全局性,函数内外都可以访问

使用系统预定义常量

  • PHP预定了很多系统内置常量,可以被随时调用
  • 常见的内置常量
    • _FILE_:PHP程序文件名
    • _LINE_:PHP程序行数
    • PHP_VERSION:PHP程序的版本
    • PHP_OS:执行PHP解析器的操作系统名称,如Linux
    • TRUE:真值
    • FALSE:伪值
    • E_ERROR:最近的错误处
    • E_WARNING:最近的警告处
    • E_RARSE:解析语法有潜在问题处
    • E_NOTICE:发生异常(但不一定是错误)处

变量

PHP中的变量声明

  • 与Java和C语言不同,PHP的变量是弱类型的,在PHP中不需要对每一个变量声明类型
  • PHP中的变量名一般以$作为前缀,然后以字母的大小或者下划线“_”作为开头
  • PHP的赋值有两种,包括传值和引用,它们的区别如下
    • 传值赋值:使用“=”直接将赋值表达式的值赋给另一个变量
    • 引用赋值:将赋值表达式内存的空间的引用赋值给另一个变量。需要在“=”左右变量前面加上一个“&”符号

可变变量和变量的引用

  • 可变变量允许改变一个变量的变量名,允许使用一个变量的值作为另外一个变量的名
  • 变量引用相当于给变量添加了一个别名,用&来引用变量,其实两个变量名指的都是同一个变量

变量作用域

  • 6种基本变量作用域法则
    • 内置超全局变量:代码中任意位置都可以访问
    • 常数:一旦声明,它就是全局性的,可以在函数内外使用
    • 全局变量:在代码中声明,在代码中访问,但是不可以在函数内访问
    • 在函数中声明为全局变量的变量:就是同名的全局变量
    • 在函数中创建和声明为静态变量的变量:在函数是无法访问的,但是这个静态变量的值是可以保留的
    • 在函数中创建和声明的局部变量:在函数外无法访问,并且在本函数终止时终止并退出
  • 超全局变量(Superglobal或者Autoglobal)
    • 不管在程序的任何地方,也不管是函数内还是函数外,都可以访问。而这些超全局变量就是由PHP预先定义好以方便使用的
    • 介绍
      • $GLOBALS:包含全局变量的数组
      • $_GET:包含所有通过GET方法传递给代码的变量的数组
      • $_POST:包含所有通过POST方法传递给代码的变量的数组
      • $_FILES:包含文件上传变量的数组
      • $_COOKIE:包含cookie变量的数组
      • $_SERVER:包含服务器环境变量的数组
      • $_ENV:包含环境变量的数组
      • $_REQUEST:包含用户所有输入内容的数组
      • $_SESSION:包含会话变量的数组
  • 全局变量
    • 在函数外声明的变量,在代码中都可以访问。但是在函数内不可以访问,因为函数默认不能访问外部的全局变量
    • 如果想让函数访问某个全局变量,可以在函数中通过global关键字声明
    • 还可以通过超全局变量的$GLOBALS数组进行访问
       $aa='我是一个全局变量';
       function showss(){
         $aa=$GLOBALS['aa'];
       }
      
  • 静态变量
    • 静态变量只在函数内存在,函数外无法访问,又static修饰。但是执行后,其值保留

变量的销毁

  • 当用户创建一个变量时,相应地在内存中有一个空间专门用于存储该变量,该空间引用计数+1。当变量与该空间的联系断开时,则引用计数-1。如果引用计数为0时,则成为垃圾
  • PHP有自动回收垃圾的机制,也可手动销毁变量,使用unset()函数实现:void unset(变量名)。此函数只销毁局部变量,不销毁全局变量

变量的类型

在PHP中,给变量赋值什么类型的值,这个变量就是什么类型

整型

浮点型

布尔型

字符串型

数组型

  • 使用list()或者array()函数来创建数组,也可以直接进行赋值
  • 使用=>为数组赋值,下标从0开始

对象型

  • 类的实例,对象型变量也属于资源型变量

NULL型

  • 标记一个变量为空,但是一个空字符串和一个NULL是不同的,NULL型在布尔判断时永远为false

资源类型

  • 一种十分特殊的数据类型,表示了PHP的扩展资源,可以使一个打开的文件,也可是是一个数据库连接,甚至可以是其它数据类型

数据类型之间的相互转换

  • 自动数据类型转换
  • 强制数据类型转换
    • 采用setType()函数
      Bool setType(var,string type)

声明标量类型和函数返回值类型(PHP7)

标量类型声明

  • 两种模式
    • 强制模式(默认)
    • 严格模式
  • 语法格式
    • declare(strict_types=1)
    • strict_types为1时则严格类型强制校验模式,作用域函数调用和返回语句;0表示弱类型校验模式

函数返回值类型

  • 可以声明函数返回值的类型,包括int,float,bool,string,interfaces,array和callable

运算符

算数运算符

  • 与Java相同

字符串连接运算符

  • .
  • 把两个字符串连接起来,变成一个字符串,如果变量是整型或者浮点型,也会变成字符串输出

赋值运算符

比较运算符

  • ===:精确等于(类型)
  • !==:不精确等于

逻辑运算符

  • &&和AND
  • ||和OR
  • !和NOT
  • XOR:逻辑异或

按位运算符

  • &
  • |
  • ^

否定控制运算符

  • !:逻辑非
  • ~:按位非

错误控制运算符

  • @:在一个操作数之前使用,用来屏蔽错误信息的生存

三元运算符

  • ?: :同Java

合并运算符和组合运算符(PHP7)

  • ??:合并运算符用于判断变量是否存在且值不为NULL,如果是,则返回自身的值,否则返回它的第二个操作数
    格式:(expr1) ?? (expr2)
  • <=>:用于比较两个表达式e1和e2,如果e1小于、等于或大于e2时,它分别返回-1、0或1

人已赞赏
Java编程语言

【Java学习笔记(五)】包管理&枚举&类的深入拓展

2020-3-21 14:16:58

PHP编程语言

【PHP学习笔记(二)】函数与控制结构

2020-3-22 21:45:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索