在PHPExcel中,我用到了一个循环,代码如下

for($i=4;$i<$num;$i++)
{
if($i>30)
{
$j="A".chr($i+34)."$m";
}else{
$j=chr($i+61)."$m"; } $objPHPExcel->getActiveSheet()->setCellValue("$j","$headerRow[$i]"); }
当$i>30的时候,$j这个变量就会获取不到,是怎么回事呢?

这段代码中,

当$i 在[4, 30]区间执行的运算是$i+61,结果范围在[65, 91];

当$i 在[31, +∞)区间执行的运算是$i+34,结果范围在[65, +∞);

chr是php函数,用来将整数转换成字符,65对应的ascii码是 A,91对应的是[,我猜这里本意是要把结果范围控制在[65, 90]区间,这个区间的话刚好对应ascii码的[A, Z]区间。

基于这个假设,建议你把代码改成下面的样子试试:

1
2
3
4
5
6
7
8
9
10
11
for($i=4;$i<$num;$i++)
{
    if ($i < 30)
    {
        $j=chr($i + 61)."$m";
    }
    else if ($i < 56)
    {
        $j="A".chr($i + 35)."$m";
    }
}

附:ASCII码对照表:http://baike.baidu.com/view/15482.htm

最新文章

  1. bzoj3481题解
  2. LocalDB在IIS中的运行失败
  3. 探索javascript----this的指向问题
  4. git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支
  5. 理解Servlet过滤器 (javax.servlet.Filter)
  6. 开源项目:X265
  7. 那些好用的iOS开发工具
  8. CAS认证(2):认证过程
  9. [VC6 console]调用API获取手机归属地
  10. Failed to upgrade Oracle Cluster Registry configuration(root.sh)
  11. CentOS &#39;mysql/mysql.h&#39;: No such file or directory
  12. 50. leetcode 520. Detect Capital
  13. Lesson 3-2 语句:循环语句
  14. asp.net core 系列 11 配置configuration (下)
  15. Swift中正则使用正则的几种方式
  16. Python float() 函数
  17. L204
  18. ambassador 学习八 流量拷贝说明
  19. 20155234 2016-2017-2 《Java程序设计》第3 周学习总结
  20. web项目页面加载时,下拉框有值

热门文章

  1. Tclientdataset的CloneCursor问题 clientdataset 复制 赋值 的问题
  2. Jmeter学习前的基本了解
  3. lambda表达式(1)
  4. oracle--角色权限
  5. jmeter分布式压测 java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
  6. Windows注册表内容详解
  7. BZOJ 1908. Pku2054 UVA1205 Color a Tree
  8. 重磅 | Elasticsearch7.X学习路线图
  9. NGUI的怎么在一个Gameobject(游戏物体)中调用另一个Gameobject(游戏物体)的脚本(C#)
  10. NIO的缓冲区、通道、选择器关系理解