PHP - Множественные условия while while [closed]

String command = "cmd /c python <command to execute or script to run>";
    Process p = Runtime.getRuntime().exec(command);
    p.waitFor();
    BufferedReader bri = new BufferedReader(new InputStreamReader(p.getInputStream()));
    BufferedReader bre = new BufferedReader(new InputStreamReader(p.getErrorStream()));
          String line;
        while ((line = bri.readLine()) != null) {
            System.out.println(line);
          }
          bri.close();
          while ((line = bre.readLine()) != null) {
            System.out.println(line);
          }
          bre.close();
          p.waitFor();
          System.out.println("Done.");

    p.destroy();
0
задан Alex 13 July 2018 в 15:30
поделиться

4 ответа

Вы будете пинать себя:

while( ( $pass < 3 ) && ( $result = 0 ) ) {

Должен использовать двойной эквивалент - это сравнение, а не назначение:

while( ( $pass < 3 ) && ( $result == 0 ) ) {
5
ответ дан RichardAtHome 17 August 2018 в 12:30
поделиться

Вам не нужна вторая переменная $result. Вместо этого используйте break .

while($pass < 3) {
    //Count loops
    $pass++;
    //Execute ping
    $output=shell_exec('ping -n 1 '.$ip);
    //Display ping results for testing purposes
    echo "<pre>$output</pre>";
    //Check for "TTL" presence
    if(strpos($output, 'TTL') !== false)
    {
        //Display for testing
        echo "Alive";

        break; //exiting while loop
    }
    //Display negative result for testing
    else
    {
        echo "Dead";
    }
}

Вы даже можете записать меньше кода с помощью

while($pass++ < 3) {
4
ответ дан Felippe Duarte 17 August 2018 в 12:30
поделиться

Ваше второе условие написано неправильно. Измените его на $result === 0

0
ответ дан Jon Wyatt 17 August 2018 в 12:30
поделиться

Использовать равный оператор не назначать.

while( ( $pass < 3 ) && ( $result == 0 ) )

Это должно работать.

0
ответ дан Mateusz Byczkowski 17 August 2018 в 12:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: