2015-09-02 51 views
0
public function updateFaction() 
{ 
    $this->plugin->getServer()->getLogger()->info("Updating Faction..."); 
    foreach($this->plugin->getFactions() as $faction) 
    { 
     $this->plugin->getServer()->getLogger()->info("test"); 
     if($faction->hasPlayer($this->player)) 
     { 
      $this->faction = $faction->getName(); 
      return true; 
     } 
     $this->faction = null; 
    } 
} 

当我在控制台中运行此代码(使用Pocketmine API)时,它打印出“Updating Faction ...”但从未到达下一行并且不打印出“测试”。我觉得我在这里没有看到一些愚蠢的错误,但它让我难倒了。跳过不明原因的代码行

+1

你调试了你的代码吗? '$ this-> plugin-> getFactions()'包含什么? – PeeHaa

+1

当你尝试'var_dump($ this-> plugin-> getFactions())时,你会得到什么数据;'? – AmitM

+0

你也可以尝试'...-> getLogger() - > info(count($ this-> plugin-> getFactions()));'看看你是否有多个项目可以迭代 –

回答

0

当我将脚本从php5.5移动到php 5.2 server时,我遇到了这个问题。几个小时后,我发现问题是由于行终止字符。因此,终止于CRLF的行会被执行,而终止于CR的行会被跳过。为了解决这个问题,我简单地将脚本复制到记事本(或任何基本的文本编辑器)并保存回到同一个文件,并且所有的工作都像在5.5服务器上那样工作。