【PHP】02 基础 P1

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

1、PHP嵌入的代码标记:

ASP标记:弃用 【需要在PHP.INI中开启配置】

<% php-code %>

短标记:弃用【需要在PHP.INI中开启配置】

<? php-code ?>

脚本标记

<script language="php"> php-code </script>

目前通用标记:

<?php php-code ?>

2、注释操作:

// 行注释
# 行注释
/* 块注释 */

3、预定义变量【内嵌对象?】

$_GET    以GET请求方式的数据封装的变量,
$_POST    以POST请求方式的数据封装的变量,
$_REQUEST    上述两种方式的数据都封装的变量

$_SERVER    服务器信息变量
$_SESSION    服务端session存储的封装的变量
$_COOKIE    客户端cookie存储的封装的变量

$GLOBAL    当前PHP脚本文件的全局变量
$ENV    PHP脚本所在的环境信息
$FILES    用户上传的文件信息

4、可变变量【指针?】

描述:变量A的变量名称【以字符串的形式】被变量B存储,通过 $ + 变量B的名称 访问变量A的值

$variableA = 100;

$variableB = 'variableA';

echo $$variableB; 

5、值传递 & 引用传递

值传递:声明另一个变量A并且赋值了10,但是与此同时把变量A赋值声明的变量B。

变量A和变量B所指向的内存空间是独立的,也就是变量B重新开辟空间把A的值存储了进来

<?php
$a = 10;
$b = $a;

echo $a,' ',$b, ' ';

$b = 20;

echo $a,' ',$b, ' ';
?>

引用传递:声明另一个变量A并且赋值了10,变量B被赋值的是& + 变量A

意思是把变量A指向内存空间的地址赋值给了变量的指向,相当于这个内存空间,被两个变量指向

指向 === 引用

<?php
$a = 10;
$b = &$a;

echo $a,' ',$b, ' ';

$b = 20;

echo $a,' ',$b, ' ';
?>

6、常量

# 常量和变量性质一样,保存值
# 称号 Const  &  Constant  在程序运行中不可改变

# 两种定义方式 【5.3版本 + 】
# 1、使用 define函数实现 define('常量名称',常量值,(是否忽略大小写))
# 2、5.3版本+ const 常量名称 = 值;

define("PI", 3.14, true); // TRUE 表示忽略大小写, FALSE 默认的,区分大小写

const STATUS_TRUE = 0;

系统常量

PHP_VERSION:PHP版本号
PHP_INT_SIZE:整型大小。(1字节8位。32位4字节,64位8字节)
PHP_INT_MAX:整型能表示的最大值(PHP中整型是允许出现负数:带符号)

魔术常量

他们有双下划线开始+常量名+双下划线结束,这种常量称之为系统魔术常量:

魔术常量的值通常会跟着环境变化,但是用户改变不了

__DIR__:当前被执行的脚本所在电脑的绝对路径
__FILE__:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)
__LINE__:当前所属的行数
 
__NAMESPACE__:当前所属的命名空间
__CLASS__:当前所属的类
__METHOD__:当前所属的方法

7、数据类型

数据类型:data type,在PHP中指的是存储的数据本身的类型,而不是变量的类型。

PHP是一种弱类型语言,变量本身没有数据类型。

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

 

简单(基本)数据类型:4个小类

整型:int/integer,系统分配4个字节存储,表示整数类型(有前提)

浮点型:float/double,系统分配8个字节存储,表示小数或者整型存不下的整数(比如32位存不下的整型)

字符串型:string,系统根据实际长度分配,表示字符串(引号)

布尔类型:bool/boolean,表示布尔类型,只有两个值:true和false

 

复合数据类型:2个小类

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

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

 

特殊数据类型:2个小类

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

空类型:NULL,只有一个值就是NULL(不能运算)

类型转换

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

在PHP中有两种类型转换方式:

1、 自动转换:系统根据需求自己判定,自己转换(用的比较多,系统自己判断需要的类型,效率偏低)

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

强制转换规则:在变量之前增加一个括号(),然后在里面写上对应类型:int/integer….其中NULL类型用到unset()

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

其他类型转布尔类型:true或者false,在PHP中比较少类型会变成false

 

 

其他类型转数值的说明

1、 布尔true为1,false为0;

2、 字符串转数值有自己的规则

1)以字母开头的字符串,永远为0;

2)以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)

类型判断

通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型(相同结果为true,失败为false):

是一组以is_开头后面跟类型名字的函数:

is_XXX(变量名)

Bool类型不能用echo来查看(不能分辨是字符串的true还是bool的true),可以使用var_dump结构查看

Var_dump(变量1,变量2…)

 

 

 

还有一组函数可以用来获取以及设定数据(变量)的类型

Gettype(变量名):获取类型,得到的是该类型对应的字符串

 

Settype(变量名,类型)(返回bool值表示转换成功与否):设定数据类型:与强制转换不同

1)强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际存储的内容)

2)settype会直接改变数据本身

 

 8、整型

整数类型:保存整数数值(范围限制),4个字节存储数据,最大就是32位:42亿多。但是在PHP中默认是有符号类型(区分正负数)

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

$a = 120;         //10进制

$a = 0b110;        //2进制  0b开头 b:binary

$a = 0120;         //8进制 0开头

$a = 0x120;     //16进制 0x开头

进制转换:

PHP中不需要用户这么复杂的去计算,提供了很多的函数进行转换

Decbin():十进制转二进制

Decoct():十进制转八进制

Dechex():十进制转十六进制

Bindec():二进制转十进制

9、浮点类型

浮点型:小数类型以及超过整型所能存储范围的整数(不保证精度),精度范围大概在15个有效数字左右

浮点型定义有两种方式:

$f = 1.23;

$f = 1.23e10;       //科学计数法,其中e表示底10。1.23*10^10

 

简单说明浮点数为什么同样的字节数存储数据,但是却能表示更大的数据呢?

00000000 00000000 00000000 00000000 à 11111111 11111111 11111111 1111111 (整型最大值:所有位都是有效数据)

浮点数:红色7位算的结果是10的指数,后面三个字节存储表示具体数值

00000000 00000000 00000000 00000000 à 11111111 11111111 11111111 1111111

最后的结果是后三个字节的值*10的指数,这样就能表示更大的数据。也正因此所以浮点数保存的数据不够精确

尽量不要用浮点数做精确判断:浮点数保存的数据不够精确,而且在计算机中凡是小数基本上存的都不准确

 

10、布尔类型

布尔类型:两个值true和false,通常是用于判断比较 

在进行某些数据判断的时候,需要特别注意类型转换

Empty():判断数据的值是否为“空”,不是NULL,如果为空返回true,不为空返回false

Isset():判断数据存储的变量本身是否存在,存在变量返回true,不存在返回false

 

posted @ 2020-09-20 10:11  emdzz  阅读(175)  评论(0)    收藏  举报