Rumah  >  Soal Jawab  >  teks badan

Berbuka jika dan foreach

<p>Saya mempunyai gelung foreach dan pernyataan if. Akhirnya saya perlu keluar dari foreach jika perlawanan ditemui. </p> <pre class="brush:php;toolbar:false;">foreach ($equipxml as $equip) { $current_device = $equip->xpath("nama"); jika ($peranti_semasa[0] == $peranti) { // Mendapati padanan dalam fail. $nodeid = $equip->id; <pecahkan if dan foreach di sini> } }</pre> <p><br /></p>
P粉651109397P粉651109397441 hari yang lalu586

membalas semua(2)saya akan balas

  • P粉564192131

    P粉5641921312023-08-29 09:28:59

    foreach($equipxml as $equip) {
        $current_device = $equip->xpath("name");
        if ( $current_device[0] == $device ) {
            // found a match in the file            
            $nodeid = $equip->id;
            break;
        }
    }

    Hanya guna break. itu sahaja.

    balas
    0
  • P粉729436537

    P粉7294365372023-08-29 00:47:33

    if bukan struktur kitaran, jadi anda tidak boleh "memecahkannya".

    Walau bagaimanapun, anda boleh melakukan ini dengan hanya memanggil break 来突破 foreach . Dalam contoh anda ia mempunyai kesan yang diingini:

    $device = "wanted";
    foreach($equipxml as $equip) {
        $current_device = $equip->xpath("name");
        if ( $current_device[0] == $device ) {
            // found a match in the file            
            $nodeid = $equip->id;
    
            // will leave the foreach loop immediately and also the if statement
            break;
            some_function(); // never reached!
        }
        another_function();  // not executed after match/break
    }

    Hanya untuk memastikan ia utuh bagi sesiapa sahaja yang terjumpa soalan ini dan sedang mencari jawapan.

    break mengambil hujah pilihan yang mentakrifkan berapa banyak struktur gelung yang harus dipecahkan. Contoh:

    foreach (['1','2','3'] as $a) {
        echo "$a ";
        foreach (['3','2','1'] as $b) {
            echo "$b ";
            if ($a == $b) { 
                break 2;  // this will break both foreach loops
            }
        }
        echo ". ";  // never reached!
    }
    echo "!";

    Hasil keluaran:

    balas
    0
  • Batalbalas