源码哥,靠谱的网站源码下载站 帮助 每日签到

源码哥

广告位《资讯详情页横幅-1150*?》

PHP类型转换的判断方法和辨别

  • 发布者:源码哥 时间:2022-09-19 15:28 阅读:300
  • 扫一扫,手机访问
广告位《资讯详情页摘要上方横幅-828*?》
摘要:PHP不需要(或不支持)变量定义中的显式类型定义;变量类型是根据变量使用的上下文确定的。也就是说,如果将字符串值分配给变量$var,$var就会变成字符串。$如果将另一个int代入var,则为int。PHP的自动类型转换的示例是乘法运算符“*”。如果其中一个操作数是浮点数,则所有操作数都被视为浮点数,结果也是浮点数。否则,操作数将解释为int,结果也为int。请注意,这不会更改操作数本身的类型;只有计算操作数的方法和表达式本身的类型会发

PHP不需要(或不支持)变量定义中的显式类型定义;变量类型是根据变量使用的上下文确定的。也就是说,如果将字符串值分配给变量$var,$var就会变成字符串。$如果将另一个int代入var,则为int。


PHP的自动类型转换的示例是乘法运算符“*”。如果其中一个操作数是浮点数,则所有操作数都被视为浮点数,结果也是浮点数。否则,操作数将解释为int,结果也为int。请注意,这不会更改操作数本身的类型;只有计算操作数的方法和表达式本身的类型会发生更改。


<?php
$foo = "1";  // $foo 是字符串 (ASCII 49)
$foo *= 2;   // $foo 现在是一个整数 (2)
$foo = $foo * 1.3;  // $foo 现在是一个浮点数 (2.6)
$foo = 5 * "10 Little Piggies"; // $foo 是整数 (50)
$foo = 5 * "10 Small Pigs";     // $foo 是整数 (50)
?>


如果上述两个示例看起来很奇怪,请参见如何将数字字符串转换为数字。

要强制变量被评估为类型,请参见类型强制部分。要更改变量类型,请参见settype()。

如果要测试本节中的示例,请使用var_dump()函数可用。


注意:

自动转换到数组的行为目前尚未确定。

此外,PHP支持使用与数组中的下标相同的语法访问字符串中的下标,因此以下示例适用于所有PHP版本:


<?php
$a    = 'car'; // $a 是 string
$a[0] = 'b';   // $a 仍然是 string
echo $a;       // bar
?>


类型强制转换 

PHP中的类型强制与C中的类型强制非常相似。在要转换的变量之前,将继续使用括号括起来的对象类型。


<?php
$foo = 10;   // $foo is an integer
$bar = (boolean) $foo;   // $bar is a boolean
?>


允许的分配角色包括:


(int),(integer)-转换为整数int

(bool),(boolean)-转换为布尔型bool

(float),(double),(real)-转换为float型的float

(string)-转换为字符串string

(数组)-转换为数组数组

(对象)-转换为对象对象

(未设置)-转换为空值


前向兼容(二进制)转换和b前缀转换。(二进制)转换基本上与(字符串)相同,但不要依赖。


(unset)转换在PHP7.2.0中被废止。请注意(未设置的)转换与将值代入空值相同。(unset)转换在PHP8.0.0中被删除。


请注意,以下两个示例具有相同的功能,因为空格和制表符可以在括号中使用。


<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

将字符串文字和变量转换为二进制字符串:


<?php
$binary = (binary)$string;
$binary = b"binary string";
?>

注意:


您可以用双引号将变量括起来,而不是将变量转换为字符串:


<?php
$foo = 10;            // $foo 是一个整数
$str = "$foo";        // $str 是一个字符串
$fst = (string) $foo; // $fst 也是一个字符串
// 输出 "they are the same"
if ($fst === $str) {
    echo "they are the same";
}
?>


分配角色运算符的优先级非常高,例如(int)$a/$b将被评估为(int)$a)/$b而不是(int)($a/$b)[这就像intdiv一样($a,$b)$a和$b都是整数的情况]。


唯一例外(PHP8.0或更高版本)是指数运算符**[即(int)$a*$b被评估为(int)($a*$b),而不是((int)$a)**$b],特别的访问/调用运算符->、:、[]和(int)$a->$b,(int)$a:$b,(int)$a:$b,(int)$a[$b],(int)$a($b),最后执行转换。变量表达式的结果。


PHP自动类型转换的一个例子是乘法运算符“*”。如果其中一个操作数是浮点,则两个操作数都被计算为浮点,结果将是浮点。否则,操作数将被解释为整数,结果也将是整数。请注意,这并不会改变操作数本身的类型;唯一的变化是操作数的e求值以及表达式本身的类型。”

我理解doc试图在这里说什么,但这句话不正确,其他类型可以强制为浮点。


了解类型转换的优先级(因为缺少更好的词)将是有用的。该条目目前解释说,“如果其中一个操作数是浮点,则两个操作数都被计算为浮点,结果将是浮点”,但可以(我认为应该)提供一个层次结构,例如,“在整数和布尔值之间,整数获胜;在浮点和整数之间,浮点获胜;在字符串和浮点之间,字符串获胜”等等(不要指望我的示例准确地捕获真正的层次结构,因为我实际上没有做过测试来弄清楚)。


相关连接: 网站源码 企业网站源码

  • 全部评论(0)
上一篇:已是第一篇内容
下一篇:PHP类型声明
广告位《资讯详情页最新发布上方横幅-828*?》
最新发布的资讯信息
【网站开发|HTML】html编码设置(2022-10-17 11:26)
【网站开发|HTML】html添加注释的方法(2022-10-17 11:25)
【网站开发|HTML】html元素(2022-10-17 11:23)
【网站开发|HTML】html属性介绍(2022-10-17 11:22)
【网站开发|HTML】html标签说明(2022-10-17 11:21)
【网站开发|HTML】html的基本结构(2022-10-17 11:20)
【行业资讯|】如何学习好网站前端开发?(2022-10-14 14:53)
【网站开发|JavaScript】如何轻松学习JavaScript(2022-10-14 14:26)
【网站开发|node.js】NodeJS Service Docker映像终极优化指南(2022-10-14 14:14)
【网站开发|JavaScript】后端response响应返回图像,前端怎么下载图片?(2022-09-23 10:17)
联系我们
Q Q:472206683
微信:472206683
邮箱:472206683@qq.com
时间:09:00 - 24:00
联系客服
售前咨询 网站搭建 技术支持 联系客服
18639176864
手机版
手机版二维码
扫一扫进手机版
返回顶部