介绍
怎么在PHP中将字符串转换为整型?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>系统内置API方式强>
num 美元;=,& # 39;345432123 & # 39;; ,//(一) $ num =, (int) num美元;//输出://int (345432123)//(二) $ num =, intval中($ num);//输出://int (345432123)
<>强采用ASCII码方式强>
下面我们利用ASCII码的方式去做转换,因为每个字符都对应一个ASCII码,当对这个字符做加减乘除的时候,实际上就是对ASCII码做加减乘除操作,也就是整型操作,最终会返回一个整型数字。
function convertInt ($ strInt =, & # 39; & # 39;) {, ,len 美元;=,strlen (strInt美元),, ,int 美元;=,0; ,(我=0;i<美元;len美元,美元我+ +){ 美元才能int *=, 10;,,, 时间=美元才能num 美元strInt{$我},安康;& # 39;0 & # 39;;,,, 美元才能int +=, num美元;,, ,} ,return 美元int;,, } ,num 美元;=,& # 39;345432123 & # 39;,, 美元,var_dump (convertInt (num);,//输出:,int (345432123)
在复述,里面也有提供一个字符串转整型的函数,也是通过ascii码方式去做的,实现的比较完善严谨,具体可以参考下
<强> string2ll函数强>
# include & lt; stdio.h> # include & lt; limits.h> # include & lt; string.h>/*,Convert a  string into a long 长只Returns 1, if 从而string could be 解析 ,* into a (non-overflowing), long 长,,0,否则只,value will be set ,*,parsed value when 适当只*/int string2ll (const char * s, size_t slen,, long long *值),{ ,const char * p =,年代; ,size_t plen =, 0; ,int negative =, 0; ,unsigned long  long v; ,if (plen ==, slen) return 才能;0; ,/* Special 案例:,first 以及only digit is 0只*/,if (slen ==, 1,,,, p [0],==, & # 39; 0 & # 39;), { if 才能;(value !=, NULL), * value =, 0; return 才能;1; ,} ,if (p [0],==, & # 39; & # 39;), { 时间=negative 才能;1; ,,p + +;全+ +;/*,才能Abort 提醒only a negative 符号只*/if 才能;(plen ==, slen) ,,return 0; ,} ,/* First digit  should be 1 - 9,, otherwise 从而string should just be 0只*/,if (p[0],祝辞=,& # 39;1 & # 39;,,,,p [0], & lt;=, & # 39; 9 & # 39;), { 时间=v 才能;p [0] & # 39; 0 & # 39;; ,,p + +;全+ +; ,}else if (p [0],==, & # 39; 0 & # 39;,,,, slen ==, 1), { * value 才能=,0; return 才能;1; ,}else { return 才能;0; ,} ,while (plen & lt;, slen ,,, p[0],祝辞=,& # 39;0 & # 39;,,,,p [0], & lt;=, & # 39; 9 & # 39;), { if 才能;(v 祝辞,(时间/ULLONG_MAX 10)),/*溢出只*/,,return 0; *=v 才能;10; if 才能;(v 祝辞,(ULLONG_MAX 安康;(p[0] & # 39; 0 & # 39;))),/*溢出只*/,,return 0; +=v 才能;p [0] & # 39; 0 & # 39;; ,,p + +;全+ +; ,} ,/* Return if  not all bytes were 只使用*/,if (plen & lt;, slen) return 才能;0; ,if (负面),{ if 才能;(v 祝辞,((unsigned long 长)(- (LLONG_MIN + 1)) + 1)),/*溢出只*/,,return 0; if 才能;(value !=, NULL), * value =, - v; ,}else { if 才能;(v 祝辞,LLONG_MAX),/*溢出只*/,,return 0; if 才能;(value !=, NULL), * value =, v; ,} ,return 1; }//- - - - - - - - - -,执行,- - - - - - - - - - - - int main () { 全国矿工工会,long long ; ,string2ll (“345432123“, strlen (“345432123”), num); ,printf (“% d \ n" num);,//输出,345432123 ,retunr 0; }怎么在PHP中将字符串转换为整型