php 如何把整型(int)转换为长整型(long)

在对接快手的 商品新增 接口时,按照文档组装好了数据,但是报“请求参数不合法,请检查字段类型是否匹配”的错误:
php 如何把整型(int)装换为长整型(long)
对着文档仔细检查了几遍,并没有发现异常。今天再检查了一遍,看到了有些字段的类型为 long,再加上文档给的示例是 Java,这才意识到问题所在。
php 如何把整型(int)装换为长整型(long)

之前接触过一点 JavaJava 的基础数据类型有四类八种。四类:整型、浮点型、字符型、布尔值;八种:byte、short、int、long、double、float、char、boolen。

即在 Java 中整型有四种:

  • byte:1个字节 8位 -128~127
  • short :2个字节 16位
  • int :4个字节 32位
  • long:8个字节 64位

但是在 php 中就只有 int 一种。

在对接时,一开始没有在意,以为数据类型为 long 的字段只要传整数(int)即可,所以就一直报“参数不合法”的错

在网上找了一下,还是有点一头雾水,所以想问一下该如何把 php 的整型转换为长整型?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 17

换java

1年前 评论
Moonshadow2333 (楼主) 1年前

file

php 64 位的默认就是 8bit 的数据

你打印下数据是不是弄成 字符串类型了(如果是json 格式请求)

1年前 评论
Moonshadow2333 (楼主) 1年前
kis龍 (作者) 1年前
Moonshadow2333 (楼主) 1年前
kis龍 (作者) 1年前
Moonshadow2333 (楼主) 1年前

php应该是不区分这些的,在发起post请求的时候也不区分int和long,你还是检查一下其他的吧

1年前 评论
李铭昕

先跟你说结论,对 PHP 而言,Int 和 Long 是一样的,当然32位和64位的服务器,可能有不同,但是不影响你这个问题。

然后,你们如果使用的是 JSON ,你可以让 java 转一个 json 你看看,你再转你的,哪里不对改哪里

1年前 评论
yyy123456 1年前
Buffett-Cai

你有没有把传过去的参数写到日志,看下具体的参数值

1年前 评论

long 和 int,值的范围不一样

这种问题,再仔细核对下是不是字段名是不是写错了,写漏了。param 传入http client 前打印出来看下类型,是不是int弄成了string

1年前 评论

postman调一下呗

1年前 评论
周小云 (作者) 1年前

在PHP中,可以使用整型(int)和长整型(long)两种整数类型来存储整数值。通常情况下,PHP会根据整数值的大小来自动选择适当的整数类型。但是,有时可能需要把一个整型(int)转换为长整型(long),这时可以使用下面的方法来完成。

使用intval函数:

$int = 123;
$long = intval($int);

使用(int)或(long)类型强制转换:

$int = 123;
$long = (long)$int;

使用长整型字面量:

$int = 123;
$long = 1234567890123456789;

使用bcmath函数库中的bcmul函数:

$int = 123;
$long = bcmul($int, '1');

请注意,在PHP中,长整型(long)类型与整型(int)类型实际上是同一种类型,只是数值范围更大而已。

1年前 评论
zds

请求前打印下请求参数,看看是不是他文档要的格式

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!