麻烦多个$ this->

时间:2013-06-05 00:40:00

标签: php

好吧,所以我有一个骰子滚轮用于一个代码是一个可怕的无证怪物的网站,我正在帮助重建并提高效率。现在进入违规代码。它读入$this->willpower$this->reroll以确定是否正在使用网站上的勾选框;但是,如果同时使用意志力和重新注册,则不会出现任何字符串[特殊]或[WP]。

  public function __construct( $post_ )
  {
    $this->target       = !is_numeric( $post_['target'] ) || $post_['target'] < 2 ||    $post_['target'] > $this->sides ? 6 : $post_['target'];
    $this->number       = $post_['number'] < 1 || $post_['number'] > 30 ? 2 :        $post_['number'];
    $this->willpower    = isset( $post_['willpower'] ) ? true : false;
    $this->reroll       = isset( $post_['reroll'] ) ? true : false;
  }

违规代码似乎是:

   if( $dice_roll == 10 && $this->reroll){
     $this->text[] = '[Specialty]';
   }

   if( $this->willpower ){
     $this->text[] = '[WP]';
   }

有人可以提供有关此错误发生原因的建议吗?

澄清:这个程序的最终输出是这样的 卷:12 d10 TN6(3,5,5,5,7,7,7,7,9,9,10,10)(成功x 10)[专业] VALID 要么 掷骰:12 d10 TN6(3,5,5,5,7,7,7,7,9,9,10,10)(成功x 10)[WP]有效 取决于通过用户输入检查的内容。但是,如果使用专业和WP,则[专业]或[WP]都不会显示在滚动结束时。

1 个答案:

答案 0 :(得分:1)

我认为你需要

if( $dice_roll == 10 && $this->reroll) {
    $this->text[] = '[Specialty]';
} else if( $this->willpower ) {
    $this->text[] = '[WP]';
}

if( $this->willpower ) {
    $this->text[] = '[WP]';
} else if( $dice_roll == 10 && $this->reroll) {
    $this->text[] = '[Specialty]';
}

取决于您期望的结果 - [WP][Specialty]