php中不带引号的数字
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
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.
0123 是数值,而“0123”是字符串值。 PHP 在内部以不同的方式存储这些类型。
为了将字符串转换为整数,您可以执行以下操作:
在这个特定示例中,打印数字 0123 结果为 83,因为 0123 是八进制值。为了将八进制字符串转换为八进制数字,PHP 提供了 octdec() 函数:
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:
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:
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.