PHP语法初步

PHP是一种运行在服务器端的脚本语言,可以嵌入到HTML中。

PHP代码标记

  • ASP标记:<% php代码 %>
  • 短标记:<? php代码 ?>

    以上两种基本弃用,如果要使用需要在phpini配置文件中开启。

image.png

  • 脚本标记:
  • 标准标记(常用):<?php php代码 ?>

    PHP注释

    习惯:所有的代码在写的过程都必须进行注释。
    注释分为两种:

  • 行注释:一次注释一行

//和#都可以

  • 块注释

/ /

PHP语句分隔符

在PHP中,代码是以行为单位,系统需要通过判断行的结束,该结束通常都是一个符号:分号;(英文状态下)

1.PHP中标记结束符?>有自带语句结束符的效果,最后一行PHP代码可以没有语句结束符。 2.PHP中其实很多代码的书写并不是嵌入到HTML中,而是单独存在,通常书写习惯中就不建议使用标志结束符?>

变量

PHP是一种动态网站开放的脚本语言,动态语言的特点是交互性,会有数据的传递,而PHP作为“中间人”,需要进行数据的传递,传递的前提就是PHP自己存储(临时)数据。

变量的使用

  • 定义:在系统中增加对应的变量名字(内存)
  • 赋值:可以将数据赋值给变量名(可以在定义的同时完成)
  • 可以通过变量名访问存储的数据
  • 可以将变量名从内存中删除

    1. <?php
    2. // 定义变量:在PHP中不需要任何关键字定义变量(赋值)
    3. $var1; //定义变量
    4. $var2 = 1; //定义同时赋值
    5. // 访问变量
    6. echo $var2; //通过var2变量名字找到存储的内容1,然后输出
    7. // 修改变量
    8. $var2 = 2
    9. echo '<hr/>',$var2 // <hr/>为分割线
    10. // 删除变量
    11. unset($var2)

    变量命名规则

  • 在PHP中变量名字必须以$开始。

  • 名字由字母、数字和下划线 _ 构成,但是不能以数字开头。
  • 在PHP中本身还允许中午命名,但非常不建议

    预定义变量

    提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)
    $_GET:获取所有表单以get方式提交的数据。
    $_POST:POST提交的数据都会保存在此。
    $_REQUEST:GET和POST提交的都会保存。
    $GLOBALS:PHP中所有的全局变量。
    $_SERVER:服务器信息
    $_SESSION:session会话数据
    $_COOKIE:cookie会话数据
    $_ENV:环境信息
    $_FILES:用户上传的文件信息

    可变变量

    如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外变量的值:在变量前面在多加一个$符号。

    1. <?php
    2. //定义两个变量
    3. $a = 'b';
    4. $b = 'bb';
    5. echo $$a; // 输出'bb'

    变量传值

    将一个变量赋值给另外一个变量
    两种方式:值传递和引用传递。

  • 值传递:将变量保存的值复制一份,然后将新的值给另外一个变量保存(两个变量没有关系)。

  • 引用传递:将变量保存的值所在的内存地址,传递给另一个变量,两个变量指向同一块内存空间(两个变量是同一个值)。

在内存中通常有以下几个分区:

  • 栈区:程序可以操作的内存部分(不存数据,运行程序代码)
  • 代码段:存储程序的内存部分(不执行)
  • 数据段:存储普通数据(全局区和静态区)
  • 堆区:存储复杂数据,大但是效率低

image.png
image.png

常量

常量和变量一样,都是用来保存数据的。

常量基本概念

常量,const/constant,是一种在程序运行中,不可改变的量(数据)。
常量一旦定义,通常数据不可改变(用户级别)。

常量定义形式

1.在PHP中变量有两种定义方式(5.3之后):

  • 使用定义常量的函数:define(‘常量名’,常量值)
  • const 常量名 = 值(5.3之后)

2.常量命名规则:

  • 常量不需要使用$符号,一旦使用系统就会认为是变量
  • 常量的名字有字母、数字和下划线组成,不能以数字开头
  • 常量的名字通常是以大写字母为主(区别于变量)
  • 常量命名的规则比变量松散,可以使用一些特殊字符,该方式只能用define定义 ```php <?php

// 使用函数定义常量:define define(‘PI’,3.14);

// 使用const关键字定义 const PII = 3;

//定义特殊变量 define(‘--‘,’smile’); const ‘--‘ = ‘smile’ //错误

  1. 注意细节:
  2. - defineconst定义的常量是有区别的,在于访问权限。
  3. - 定义常量通常不区分大小写,但是可以区分,可以参照define的第三个参数。
  4. <a name="3Kkm2"></a>
  5. ### 常量的使用
  6. 常量的使用和变量一样,不可以改变值(在定义时就必须赋值)。<br />有的时候还需要使用另外一种形式来访问(针对的是特殊名字的常量),需要用到一个另外一个访问常量的函数:constant('常量名')
  7. ```php
  8. <?php
  9. // 使用函数定义常量:define
  10. define('PI',3.14);
  11. // 使用const关键字定义
  12. const PII = 3;
  13. //定义特殊变量
  14. define('-_-','smile');
  15. const '-_-' = 'smile'; //错误
  16. // 使用常量
  17. echo PI;
  18. echo constant('-_-');

系统常量

系统帮助用户定义的常量,用户可以直接使用。
常用的几个系统常量:

  • PHP_VERSION:PHP版本号
  • PHP_INT_SIZE:整型大小
  • PHP_INT_MAX:整形能够表示的最大值

在PHP中还有一些特殊的变量,他们有双下划线开始+常量名+双下划线结束,这种变量称为系统魔术变量:魔术变量的值通常会跟着环境变化,但是用户改变不了。

  • DIR:当前被执行的脚本所在电脑的绝对路径
  • FILE:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)
  • LINE:当前所属的行数
  • NAMESPACE:当前所属的命名空间
  • CLASS:当前所属的类
  • METHOD:当前所属的方法

数据类型

数据类型:data type,在PHP中指的是存储的数据本身的类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型。

PHP的八种数据类型

在PHP中将数据分为三大类八小类。

简单数据类型(4)

  • 整型:int/integer,系统分配4个字节存储,表示整数类型(有前提)
  • 浮点型:float/double,系统分配8个字节存储,表示小数或者整型存不下的整数
  • 字符串型:string,系统根据实际长度分配,表示字符串(引号)
  • 布尔类型:bool/boolen,表示布尔类型,只有两个值:true和false

    复合数据类型(2)

  • 对象类型:object,存放对象(面向对象)

  • 数组类型:array,一次性存储多个数据

    特殊数据类型(2)

  • 资源类型:resource,存放资源数据(PHP外部数据,如数据库、文件等)

  • 空类型:NULL,只有一个值NULL,不能进行计算

    类型转换

    在很多条件下,需要指定数据类型,需要外部数据(当前PHP取得的数据)转换成目标数据类型。
    在PHP中有两种类型转换方式:

  • 自动转换:系统根据需求自己判定,自己转换(用的较多,效率偏低)

  • 强制(手动)转换:认为根据需要的目标类型转换

在转换类型中,用的较多的是转布尔类型(判断)和转数值类型(算术运算)。

字符串转数值的规则:

  • 以字母开头的字符串,永远为0
  • 以数字开头的字符串,取到碰到字符为止(不会同时取两个小数点)

image.png

类型判断

通过一组类型判断函数来判断变量,最终返回这个变量所保存数据的数据类型,是一组以is_开头后面跟类型名称的函数:is_XXX(变量名)

布尔类型不能使用echo来查看,可以使用var_dump(变量名1,变量名2,……)结构查看

也可以使用gettype()来获取数据类型,
settype()设置数据类型(与强制转换不同)

强制转换是对数据值复制的内容进行处理,不会处理实际存储的内容;settype()会直接改变数据本身

整数类型

在PHP中提供了四种整型的定义方式:十进制定义、二进制定义、八进制定义、十六进制定义。

  1. <?PHP
  2. $a = 120; // 十进制
  3. $b = 0b110; // 二进制
  4. $c = 0120; // 八进制
  5. $d = 0xff; // 十六进制