没有看到你的 for 循环的写法
但你的 foreach 中有
foreach ($result as $device) {
  $result = fwrite($fp, $msg, strlen($msg));
改变了原始量
如果 for 循环也是这样的话,自然就不行了foreach 是对数组的引用进行循环的

解决方案 »

  1.   

    我用for是这样写的
    for($i = 0; $i < $countArray; $i++)
    {
    $deviceToken = $result[$i]['appleID'];
        print_r("***".$deviceToken."**");
        // Build the binary notification
    $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
    // Send it to the server
    $result = fwrite($fp, $msg, strlen($msg));
     
    if (!$result)
        echo 'Message not delivered' . PHP_EOL;
    else
        echo 'Message successfully delivered' . PHP_EOL;
     }
    这只是往服务器上传数据吧?涉及到修改值了吗?
      

  2.   

    for($i = 0; $i < $countArray; $i++)
    {
        $deviceToken = $result[$i]['appleID']; //从数组 $result 中取值
        print_r("***".$deviceToken."**");
        // Build the binary notification
        $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
    // Send it to the server
    $result = fwrite($fp, $msg, strlen($msg)); //改变了 $result 的值
      
    if (!$result)
        echo 'Message not delivered' . PHP_EOL;
    else
        echo 'Message successfully delivered' . PHP_EOL;
    }
      

  3.   


    得君解释,三生有幸!!!豁然开朗,其实把后面的result改个名称用for我试过了还是可以的,,碰巧,重名 了~~~