怎么在PHP中将字符串转换为整型

  介绍

怎么在PHP中将字符串转换为整型?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>系统内置API方式

num 美元;=,& # 39;345432123 & # 39;;      ,//(一)   $ num =, (int) num美元;//输出://int (345432123)//(二)   $ num =, intval中($ num);//输出://int (345432123)

<>强采用ASCII码方式

下面我们利用ASCII码的方式去做转换,因为每个字符都对应一个ASCII码,当对这个字符做加减乘除的时候,实际上就是对ASCII码做加减乘除操作,也就是整型操作,最终会返回一个整型数字。

怎么在PHP中将字符串转换为整型”> <br/> -图片转自网络——<br/> </p> <p>通过上图可以看到字符& # 39;0 & # 39;~ & # 39;9 & # 39;的ascii码是48 ~ 57我们在转换的时候就是用每一个字符减去& # 39;0 & # 39;例如:& # 39;1 & # 39;- & # 39;0 & # 39;=1 & # 39;2 & # 39;- & # 39;0 & # 39;=2返回值就是一个Int类型、下面具体看代码实现。</p> <pre class= 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中将字符串转换为整型