• 2.2常量+变量详解+变量传值+数据类型


     

     

    量就是内容,就是数据。

    变量

    1. 什么是变量?

    可以被改变的量

    php中的变量规则

    1. 必须以$符号开始,后面跟变量名

    2. 变量名:以字母或者下划线开始,后面可以跟数字

    3. php中可以使用中文变量

    clip_image002

    4. PHP中变量区分大小写

    clip_image004

    注意:PHP语言是一种弱类型语言,php中的变量可以存储任意类型的数据。

    2. php定义语法

    $变量名 = 值(没有数据类型限制);

    clip_image006

    3. 使用php变量

    1. 凡是需要使用变量的地方,可以直接使用$符号后跟变量名

    2. 变量在使用之前必须先定义好(赋值)

    clip_image008

    4. 变量的增删改查

    删除变量需要使用到php的一个函数:unset

    语法:unset(变量);

    clip_image010

    常量

    1. 什么是常量?

    常量是一个经常用,但是不会改变的量。

    2. 常量规则

    a) 定义规则:不是通过$符号定义,而是通过define函数定义

    语法:define(‘常量名’,常量值);

    clip_image012

    b) 语法规则:不需要$符号,其他规则类似,通常,常量的定义都是大写字母和下划线

    c) 使用规则:常量一经定义不可修改

    d) 常量的语法规则比变量要简单(宽松)

    3. 使用常量:直接使用常量名字即可

    clip_image014

    4. 修改常量:不允许

    直接修改

    clip_image016

    使用define重新定义

    clip_image018

    删除常量

    clip_image020

    5. 松散常量

    定义

    clip_image022

    使用:特殊字符组成的常量是不能直接使用的,要使用必须通过constant函数实现

    语法:constant(‘常量名’);

    clip_image024

    常量的使用

    1. 一个经常要用,但是不允许改变的数据,用常量保存

    2. 常用往往用于访问限制:判断函数:defined(‘常量名’),如果一个常量被定义过了,返回true,如果没有定义过返回false

    clip_image026

    系统预定义变量

    系统已经定义好的,用户可以直接使用的变量。(用户也可以修改)

    $_POST:用户接收用户从浏览器使用post方式提交的所有数据,是一个数组

    $_GET:接收浏览器以get方式提交的所有数据,是数组

    $_REQUEST:接收浏览器post或者get或这个cookie数据,也是数组

    $_FILES:浏览器文件上传的数据

    $_SESSION:会话技术之一session的数据

    $_COOKIE:会话技术之一cookie的数据(浏览器携带到服务器)

    $GLOBALS:全局变量的数组(所有的全局变量都可以在该数组中找到)

    $_SERVER:服务器信息和浏览器信息

    如何查看一个数组?var_dump(数组)

    clip_image028

    访问单个数据

    clip_image030

    作业:将$_SERVER中认为有用的数据给整理一遍

    $_ENV:环境

    预定义常量

    系统已经定义好的常量

    PHP_OS:当前PHP运行的操作系统

    clip_image032

    PHP_VERSION:当前PHP版本

    clip_image034

    PHP_INT_SIZE:当前PHP中整型所占用的内存空间(字节为单位)

    clip_image036

    PHP_INT_MAX:当前php中能够表示的最大整型数值

    clip_image038

    魔术常量

    表示方法是以双下划线开始和双下划线结束

    魔术常量在不同的位置代表不同的数据

    __FILE__:当前文件的绝对路径,包含文件名

    clip_image040

    __LINE__:当前行的行号

    clip_image042

    __DIR__:当前文件的绝对路径,不包含文件名

    __FUNCTION__:当前函数的名字(只能在函数内部使用)

    clip_image044

    __METHOD__:当前方法的名字(只能在方法内部使用)

    变量和常量内存示意

    内存指的是在系统运行的时候,RAM。

    内存分为多个部分:栈,堆区,代码段,数据段

    栈:程序能直接操作的唯一内存,栈比较小,但是速度较快

    堆:一大块连续的内存空间,程序不能直接操作,空间大,地址连续,但是效率低

    代码段:专门存放代码的内存地址,系统会根据代码段里存储的代码逐行的执行代码

    数据段:存放数据的地方,数据段又可以分为多个部分

    全局区:存放全局数据和局部数据

    静态区:存放静态变量和常量

    php代码执行过程

    clip_image046

    简单代码执行内存分析

    clip_image048

    变量传值

    变量传值方式分为两种:值传递和引用传递

    值传递

    将一个变量的值复制一份,然后传递给另外一个变量,内存中会存放两份数据。

    clip_image050

    引用传递

    将变量的所指向的内存地址赋值给另外一个变量。

    语法:$a = &$b;

    clip_image052

    内存分析

    clip_image054

    可变变量

    变量可以变,变量所对应的值刚好是另外一个变量的名字,再加上一个$符号之后,就可以获取到对应变量的值。

    clip_image056

    数据类型

    数据类型是系统根据自然界中人们所对事物的分类,在系统内部的一种体现。

    php中对数据类型如何分类?

    标量数据类型(基本),复合数据类型,特殊数据类型

    php中的数据类型都是用来规范数据本身而不是变量本身(PHP是弱类型语言)

    标量数据类型

    标量数据类型又分为四类:整型,浮点型,布尔型,字符串型

    整型

    用来描述整数,int或者integer

    $a = 100; //a是一个整型变量(a的值是一个整型数据)

    可以使用变量保存其他进制数据:八进制和十六进制

    $num1 = 0777;

    $num2 = 0xffff;

    clip_image058

    强制按进制进行输出:printf

    语法:printf(“输出字符串携带输出格式”,要输出的参数列表)

    clip_image060

    PHP中的整型占4个字节32位,最大数值是21亿多,超出php能表示的最大范围之后,数据类型会变成浮点型。

    clip_image062

    浮点型

    float或者double关键字

    float:占用4个字节,单精度,能够保证的有效的精确数位数比较小,大概是7位左右,能表示最大范围大概是10^38

    double:占用8个字节,双精度,有效的精确数位数比较大,大概是15位左右。

    在php中没有单精度,都是双精度(占用8个字节)

    clip_image064

    超过精度部分会继续四舍五入

    clip_image066

    整型与浮点型存储数据的变化

    clip_image068

    整型与浮点数的应用

    需要精确的表示一个数值的时候,但是数值又不是很大的情况下使用整型

    需要一个大概的值,但是数据量又很大的情况下使用浮点型

    布尔型

    布尔型就只有两个结果:true和false,通常布尔类型都是用于判断。使用bool或者Boolean

    clip_image070

    大部分的数据进行类型转换后都会变成布尔的true,但是有少部分是false

    FALSE,0,0.0,’’,’0’,空数组,null值

    clip_image072

    字符串型

    用一系列字符来表示的数据。

    定义字符串类型的方式有三种:单引号,双引号和定界符

    单引号:只能解析较少的转义字符:’,\

    双引号:能解析较多的转义字符: ”,解析变量

    clip_image074

    定界符:以<<<定界符标识,中间是字符串内容,最后跟定界符标识结束

    clip_image076

    定界符使用规则

    1. 左尖括号后必须跟定界符标识,标识的右边不能有任何内容包括注释和空格

    2. 定界符内部不能写注释:写了也没用,会被照样输出

    3. 右定界符必须顶格:靠近最左边

    4. 右定界符的右边不能有任何多余的内容:包括注释和空格

    定界符结构:定界符本身模拟的是单引号和双引号

    定界符分为两种:heredoc,nowdoc

    heredoc:模拟的是双引号

    nowdoc:模拟的是单引号,nowdoc就是给左定界符加上单引号

    clip_image078

    复合数据类型

    复合数据类型:数组和对象

    特殊数据类型

    空类型(null)和资源

    NULL:空数据类型

    变量被unset掉

    变量直接赋值为null

    资源:PHP操作外部数据(mysql连接,mysql结果集,文件操作…)

    作业:

    1. 定义两个变量:$a = 10,$b = 20;使用三种方式实现两个变量的交换。$a = 20,$b = 10。

  • 相关阅读:
    三、DQL语言
    四、DML语言
    五、DDL语言
    Set WebClient Timeout and reference Stackoverflow
    C# anonymous types and serialization
    C# get multiple folders size under upper folder and order them by size descendingly.
    C# NamedPipeServerStream NamedPipeClientStream
    Convert XLSX file to DataTable via NPOI
    C# NPOI read excel files include xls and xlsx
    C# write stream to local file
  • 原文地址:https://www.cnblogs.com/lifushan/p/5285760.html
Copyright © 2020-2023  润新知