php中不带引号的数字

发布于 2024-12-20 02:09:29 字数 327 浏览 0 评论 0原文

php代码非常简单:

<?php

$my_bn_num=number_bangla(0123);

function number_bangla($num1){
echo ("<br>num =".$num1);
}

?>

输出是: num=83

但是如果我用这样的单引号字符串调用该函数:

$my_bn_num=number_bangla('0123');

输出是: num=0123

这里 0123 和 '0123' 之间的详细区别是什么?

the php code is pretty simple :

<?php

$my_bn_num=number_bangla(0123);

function number_bangla($num1){
echo ("<br>num =".$num1);
}

?>

And the ouput is: num=83

But if I call the function with a singly quoted string like this:

$my_bn_num=number_bangla('0123');

the output is: num=0123

What is the detailed difference between 0123 and '0123' here ?

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

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

发布评论

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

评论(3

云淡月浅 2024-12-27 02:09:29

0123 是一个八进制整数,因为它以 0 开头。
整数将由 echo/print 打印为十进制数。

'0123' 是一个字符串,因此打印时不会转换任何内容。

0123 is an octal integer because it starts with 0.
Integers will be printed by echo/print as decimal numbers.

'0123' is a string, so nothing will be converted when it is printed.

绾颜 2024-12-27 02:09:29

0123 是数值,而“0123”是字符串值。 PHP 在内部以不同的方式存储这些类型。

为了将字符串转换为整数,您可以执行以下操作:

$num = (int) $num;

在这个特定示例中,打印数字 0123 结果为 83,因为 0123 是八进制值。为了将八进制字符串转换为八进制数字,PHP 提供了 octdec() 函数:

$num = octdec($num);

0123 is a numeric value whereas '0123' is a string value. Internally PHP stores those types differently.

In order to cast string to integer you can do following:

$num = (int) $num;

In this particular example printing number 0123 results to 83 because 0123 is an octal value. For casting octal strings to octal numbers PHP offers octdec() function:

$num = octdec($num);
扭转时空 2024-12-27 02:09:29

0123 是一个八进制数。在大多数脚本语言中,前面用 0 表示的任何数字都被视为八进制数(因为通常不会在数字前面放置 0。

当您在引号中指定它时,它会被视为字符串。

当您正在处理整数并希望它们采用特定格式,您应该做的是使用 intval 函数。

intval($num,10) 会将变量 $num 转换为以 10 为基数的整数,而不是依赖 PHP 转换代码来发挥其黑魔法。

0123 is an octal number. In most scripting languages any number represented by a 0 in front of it is treated as if it were an octal number (since you normally don't put 0's in front of numbers.

When you specify it in quotes its treated as a string.

When you are handling integers and want them in a particular format, what you should do is use the intval function.

intval($num,10) would translate the variable $num to a base-10 integer, instead of relying on the PHP casting code to work its black magic.

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