gpt4 book ai didi

php - 了解 PHP 类型强制

转载 作者:可可西里 更新时间:2023-11-01 12:52:16 26 4
gpt4 key购买 nike

我看到了这段让我无法理解的小代码:

<?php

$a = '0e462097431906509019562988736854';
$b = '0e830400451993494058024219903391';

var_dump($a == $b);

输出:

bool(true)

据我所知,当使用== 时,PHP 会尝试进行模糊比较,默默地在类型之间进行转换以执行比较。我理解的是为什么 PHP 似乎认为这两个字符串相同。我原以为 $a$b 是字符串,因此不需要进行类型转换。

我不明白什么?

最佳答案

我认为这篇文章解释得很好:

Type-coercing comparison operators will convert numeric strings to numbers

只是在这里引用主要问题:

According to php language.operators.comparison, the type-coercing comparison operators will coerce both operands to floats if they both look like numbers, even if they are both already strings:

两个 strings 都使用指数表示法,因此被视为数字字符串,进行松散比较 (==),强制转换这些 strings在实际“松散地”比较它们之前漂浮

作为最佳实践并防止意外行为,请始终尝试使用 identity equality (===),尤其是在处理字符串时。

关于php - 了解 PHP 类型强制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26741378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com