PHP 中的强制转换是如何工作的?

发布于 2024-08-13 23:24:38 字数 132 浏览 5 评论 0原文

这不起作用:

(int)08 == (int)09==0

但是这个和这个起作用了?

(int)07==7 
(int)06==6 

What doesn't this work:

(int)08 == (int)09==0

But this and this does?

(int)07==7 
(int)06==6 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

蒗幽 2024-08-20 23:24:38

08 是八进制的(因为它以 0 开头),因此它是无效的。 请参阅文档

08 is in octal base (because it starts with a 0), hence it is invalid. See the documentation.

ι不睡觉的鱼゛ 2024-08-20 23:24:38

因为 0809 不是有效的八进制数。 请参阅文档中的警告

because 08 and 09 are not valid octal numbers. see warning in docs.

寂寞笑我太脆弱 2024-08-20 23:24:38

您正在以八进制形式键入无效数字。

You're type casting an invalid number in octal base.

依 靠 2024-08-20 23:24:38
// Syntax error
//(int)08 == (int)09==0

// This works
(int)08==0;
(int)09==0;

// This also works
(int)08 == ((int)09==0);
// Syntax error
//(int)08 == (int)09==0

// This works
(int)08==0;
(int)09==0;

// This also works
(int)08 == ((int)09==0);
榕城若虚 2024-08-20 23:24:38

您正在使用 (int) 显式进行类型转换,

最好使用 intval()。

you are explicitly typecasting using (int)

Better use intval().

忆悲凉 2024-08-20 23:24:38

要使用十六进制表示法,请在数字前添加 0x。

所以,

 $num = (int)0x9
 $num == 9

To use hexadecimal notation precede the number with 0x.

Therefore,

 $num = (int)0x9
 $num == 9
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文