菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
0
0

数据类型转换及常量笔记

原创
05/13 14:22
阅读数 414

var_dump()

  • var_dump(); 该功能可以直接将数据的值和类型显示出来
  • 优点:既可以查看变量类型也可以查看值
  • 缺点:类型和值的结果无法被接收,后续代码无法使用

gettype()

获取数据类型

<?php
$int = 10;
$res = gettype($int);
var_dump($res); //integer

可以返回的字符串类型关键字

  • "boolean"
  • "integer"
  • "double" 由于历史原因,如果是float则返回"double",而不是"float"
  • "string"
  • "array"
  • "object"
  • "resource"
  • "NULL"

优点:可以获取任何数据的类型,获取之后可以给下方的程序使用
缺点:功能强大导致效率低下,需要逐个匹配类型

is系列的检测变量的方式效率比较高

  • is_int() is_integer()
  • is_float() is_double()
  • is_string()
  • is_bool()
  • is_object()
  • is_array()
  • is_resource()
  • is_null()
  • is_numeric() 检测数据是否是数字(整型、浮点型、字符串)
  • is_scalar() 检测数据是否是标量(整型、浮点型、字符串、布尔型)

is_函数的优缺点

  • 优点:检测效率高,并且也可以检测到结果
  • 缺点:功能单一

数据类型的转换

  • PHP是一门弱类型的语言

    • 八种数据可以转换,而且不需要人工干预
  • 数据类型转换的分类

    • 自动数据类型转换(隐形数据转换)
    • 强制数据类型转换(显性)
  • 自动数据类型转换

<?php
$str = '999';
$int = 1;
$res = $str + $int;
var_dump($res); // int 1000

$a = true;
$b = 10;
$res = $a + $b;
var_dump($res); //int 11
  • 自动数据类型转换不需要人工的干预
  • 自动类型发生在运算或者判断过程中
  • 自动类型转换仅限标量
  • 在类型转换过程中一般是向着更精确的数据进行转换
<?php
$int = 10;
$float = 3.14;
$res = $int + $float;
var_dump($res); //float 13.14

强制数据类型转换

一共分三种方法

  • 使用语言结构的方式修改变量的类型
$var = 250;
echo '原类型';
var_dump($var);
//进行转换
$newVar = (string)$var;  //int 250
$newVar = (float)$var;  //float 250
echo '新类型';
var_dump($newVar);

可以转换的类型和关键字

  • 整型 (int) (integer)
  • 浮点型(float) (double)
  • 布尔值(bool)(boolean)
  • 数组(array)
  • 对象(object)
  • 字符串(string)
  • 资源---无法转换
  • 空---无法转换

使用指定类型的转换功能

只有这三种

  • strval()
  • floatval()
  • intval()
$var = 5.03;
$res = intval($var);
var_dump($res);  //int 5

$a = '11你好';
$res = floatval($a);
var_dump($res); //float 11

$b = '你好11';
$res = intval($b);
var_dump($res); //int 0

字符串转换规则

字符串->数值

  • 如果是纯数字字符串,转换之后只改变类型

通用类型转换功能

settype()

除了资源类型都可以转换

$var = 'nihao';
$res = settype($var,'int');
var_dump($res); //true->代表转换成功
var_dump($var);//int 0;
  • int integer
  • float double
  • string
  • boolean bool
  • array
  • object
  • null

返回值:成功返回true,失败返回false;

能转换布尔值为false的情况

  • 整型 0
  • 浮点型 0.0
  • 字符串 ''和'0'
  • 布尔型 false
  • 数组 array()
  • 对象 都是真
  • 资源 都是真
  • 空 null

PHP中的常量

什么是常量

  • 通常不会改变的量就是常量

常量如何声明

  • Define(‘常量名’,’常量值’,[true|false]);
  • b)注意:第三个参数是可选参数,默认为false,表示常量名严格区分大小写,如果设置为true表示不区分大小写。

注意事项

  • 常量名开头不可以使用$
  • 声明常量不要使用中文,可以使用英文,推荐大写
  • 可以使用数字,但是不能以数字开头
  • 不可以使用特殊字符,除了下划线
  • 常量命名要有意义
  • 常量是否区分大小写,由define的第三个参数决定,true是不区分大小写,默认是false,区分大小写
    常量值
  • Php版本\<7,常量的值仅能在标量中选取
  • Php版本>=7,常量的值仅能在标量或者数组中选取

常量的特点

  • 常量一旦定义就不可以在改变其值
  • 常量习惯上使用大写
  • 常量如果声明就要有值,如果不声明就将该常量名称当做字符串来处理

Php版本>5.3之后可以使用
使用const关键字声明常量
格式:const 常量名 = 常量值
该方式只有声明方式和define不同,其他规则都相同

区别

const不能再流程控制中定义,而define可以定义
只要不是在类中声明常量其他地方都使用define
如果在类中声明常量则使用const

系统中自带的魔术常量

  • FILE 表示当前文件相对于系统的绝对路径
  • LINE 表示当前常量所在的行
  • FUNCTION 可以在函数中获取当前函数的名称
  • CLASS 表示当前常量所在的class(类)的名称
  • METHOD 表示当前常量所在的类和方法名

常量相关的几个功能

constant() 获取一个常量值的功能
作用:当一个常量名是一个字符串的时候,才能发挥constant的作用
返回常量值 = constant(‘字符串类型的常量名’)

  • get_defined_constants() 获取当前定义的所有常量集合,返回一个数组(了解级别)
  • Defined() 检测一个常量是否被定

    格式:返回结果变量 = defined(‘要检测的常量名’)
    返回值:如果该常量已经被定义则返回true;
    如果该常量没有被定义则返回false;

发表评论

0/200
0 点赞
0 评论
收藏
为你推荐 换一批