Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 强制转换删除前导零_Php_Casting - Fatal编程技术网

Php 强制转换删除前导零

Php 强制转换删除前导零,php,casting,Php,Casting,有人能告诉我为什么当我投下一串比如00332时,我只得到332吗?它删除前导零并以相同格式保存数据 谢谢 你把它投给什么?为什么?让我们看看代码。如果你转换成整数,是的,整数没有前导零,所以它们消失了。不足为奇。你把它投给了什么,为什么?让我们看看代码。如果你转换成整数,是的,整数没有前导零,所以它们消失了。毫不奇怪。我会这么说,因为前导零在转换为整数时没有任何重要性 如果需要前导零,可能应该将其保留为字符串,并且只对需要执行的任何数学运算强制转换(int)(尽管也可以使用字符串,PHP会解决

有人能告诉我为什么当我投下一串比如00332时,我只得到332吗?它删除前导零并以相同格式保存数据

谢谢



你把它投给什么?为什么?让我们看看代码。如果你转换成整数,是的,整数没有前导零,所以它们消失了。不足为奇。

你把它投给了什么,为什么?让我们看看代码。如果你转换成整数,是的,整数没有前导零,所以它们消失了。毫不奇怪。

我会这么说,因为前导零在转换为整数时没有任何重要性

如果需要前导零,可能应该将其保留为字符串,并且只对需要执行的任何数学运算强制转换
(int)
(尽管也可以使用字符串,PHP会解决这个问题)

编辑


看了这个例子之后,我想在转换为字符串之前回显这个值(这样我可以确认QuoteSmart方法(或作为参数$gate发送的值)中没有可疑的地方)

我想说,因为前导零在转换为整数时没有任何重要性

如果需要前导零,可能应该将其保留为字符串,并且只对需要执行的任何数学运算强制转换
(int)
(尽管也可以使用字符串,PHP会解决这个问题)

编辑


看了这个示例后,我想在转换为string之前回显这个值(这样我可以确认QuotesStart方法(或作为param$gate发送的值)没有出现可疑的情况)

不要将字符串转换为字符串,或将任何类型转换为同一类型。类型转换用于将某个类型更改为另一个类型。

不要将字符串转换为字符串,或将任何类型转换为同一类型。类型转换用于将某个类型更改为另一个类型

$ php -r 'var_dump((string)"00123");'
string(5) "00123"
看来演员不是你的问题



看起来强制转换不是你的问题。

好的,下面是它删除前导零的原因。它既不是强制转换也不是添加斜杠。我所做的是引用变量(quotesmart无论如何都应该这样做,但出于某种原因没有这样做)一旦我引用了变量,我就正确地保存了值。如果我没有弄错的话,quotesmart将只处理字符串而不是int。

好的,这就是它删除前导零的原因。它既不是强制转换也不是添加斜杠。我所做的是引用变量(quotesmart无论如何都应该这样做,但出于某种原因没有这样做)一旦我引用了变量,我就正确地保存了值。如果我没有弄错的话,quotesmart将只处理字符串而不处理整数。

你是在将字符串转换为字符串吗?将整数转换为字符串吗?请详细说明。是的,将字符串转换为字符串。我是新手,所以…你的权利!更奇怪的是,我删除了所有变量,但仍然是g让前导的零被删除..给出了什么?等等..我正在通过addslashes()运行var。我想知道这是否就是删除零的原因。addslashes()不应该接触任何0。它应该在需要转义的任何字符之前放一个斜杠,如“等等”。你是在将字符串转换为字符串吗?将int转换为字符串吗?请详细说明。是的,将字符串转换为字符串。我是新键入转换的,所以…你的权利!更奇怪的是,我删除了所有变量,但仍然删除了前导零。。给出了什么?等等…我正在通过addslashes()运行var。我想知道这是否是删除零的原因。addslashes()不应该接触任何0。它应该在需要转义的任何字符之前放一个斜杠,如“等”。请看上面。谢谢帮助请看上面。谢谢帮助。嘿,Alex。你前几天帮了我,谢谢你的帮助!我在上面发布了一个示例。我发送的val是00432,在它施放之后,我只得到了432保存在数据库中。:/因此,在强制转换之前,我可以回显00432,之后只能得到432。让我删除quotesmart函数,看看是否可以修复它。brbAlso,Jim,您的数据库字段上有什么类型?这可能也会影响数据库中保存的内容。它需要类似于VARCHAR的内容,而不是INT变体(最有可能将无用信息销毁为整数,例如前导
0
s)嗯,我喜欢你的想法,Alex,但字段设置为char,可以接受任何类型的输入。嘿,Alex。前几天你帮了我,谢谢你的帮助!我在上面发布了一个示例。我发送的val是00432,在它被转换后,我只会在数据库中保存432。/所以,在转换之前,我可以回显00432,之后只能回显获取432。让我删除quotesmart函数,看看是否可以修复它。brbAlso,Jim,您的数据库字段上的类型是什么?这可能也会影响数据库中保存的内容。它需要类似于VARCHAR的内容,而不是INT变体(这很可能会将无用信息销毁为整数,例如前导
0
s)嗯,我喜欢你的想法,Alex,但字段设置为char,可以接受任何类型的输入。@Jim,这取决于,如果你接受的用户输入必须是数字(例如,$\u GET['id']),那么最好使用(int)$\u GET['id']转换为整数。它将吹走任何领先的alpha内容,如果无法获得任何有用的数字,则将变为0。但是,需要根据上下文采取其他预防措施…例如,打印到页面的变量应为htmlspecialchars()数据库查询中的'd和vars应该是mysql_real_escape_string或与数据库等效的字符串。事实上,只需使用参数化查询。请访问www.php.net/pdoOk,这很有意义。我认为Alex可能有一点关于quotesmart函数更改输出的观点。我将删除它,看看我得到了什么。当然,还有更多的内容需要考虑的安全问题,但幸运的是,网络上有很多东西。明智地研究!好吧,删除quotesmart什么也没做。这是我现在拥有的:$t
$ php -r 'var_dump((string)"00123");'
string(5) "00123"