本帖最后由 sdffffaa 于 2011-06-10 01:49:04 编辑

解决方案 »

  1.   

    if (strlen($q) > 0)
    {
    $hint=""; //这里对 $hint 赋空值
    for($i=0; $i<count($a); $i++)
      {
      if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
        {
        if ($hint=="")  //这里是不是在什么情况下都成立的?(实际有时候不成立,这句真的看不懂。帮我讲解下)
          {
          $hint=$a[$i]; //这里又对 $hint 赋值,只要 $a[$i] 不为空,这个分支就不会再进来了
          }
        else            //如果上面始终是成立的这句永远都不会执行吗?(实际这里执行了...真看不懂)
          {
      

  2.   

    还是不明白啊。。详细点啊
     if ($hint=="") 
    这里不是永远都成立的吗?
      

  3.   

    第一次循环
    if ($hint=="")  成立 
    给$hint赋值
    第二次循环
    if ($hint=="")  不成立 知道了吗?
      

  4.   

    本帖最后由 xuzuning 于 2011-06-10 14:09:04 编辑
      

  5.   

    第2次循环为什么不成立呢?$hint=="" 不是始终都是成立着的嘛?能在帮我仔细说说吗?
      

  6.   

    我只是if ($hint=="")这里看不懂?怎么会有不成立的时候....
      

  7.   

    第一次循环
    if ($hint=="") 成立 
    给$hint赋值
    这时候$hint = $a[$i];   //这时候$hint="Anna"
    第二次循环
    if ($hint=="") 不成立 
    执行else里的
    $hint=$hint." , ".$a[$i];  
    以后一直到循环结束都不会 进入 if ($hint=="") {} 这里面了明白了吗?
      

  8.   

    第二次循环 时候,$hint已经有值了,所以去执行else
      

  9.   

    总算有点头绪了
    我这智商是不是该放弃学php了呢?
    昨天看了3个小时这段代码都没看明白....
    给点意见是不是学美工才适合我啊?