Neden ben bir üye işleve bir dize ama sadece bir dizi göndermek değil mi?

2 Cevap

Bir şeyin toplam sayısı için aramak için kendi fonksiyonunu yapıyor Im. ama propperly çalışmıyor. fonksiyonu getNumberOfCounts $ fromIndex öğesini değil SearchWord alır

public function getNumberOfCounts( $searchWord, $fromIndex )
{       
    $index = $fromIndex;
    $counter = 0;

    while( $index <= $endPos )
    {
        $index++;

        $pos = strpos( $this->text, $searchWord, ($index+1) );

        if( $pos > $index )
        {
            $counter++;

            $index = $pos;
        }
        else
            break;

    }

    return $counter;
}

public function searchDemo()
{
    $startPos = 11; // ex

    echo "<br /> count= " . $this->getNumberOfCounts( "Lorem", $startPos );
}

Her ikisi de aynı sınıf OFC parçasıdır.

EDIT: i know there is some missing info, but if I try to print $searchWord on the first line of getNumberOfCounts nothing is outputted.

2 Cevap

Sadece kullanırken olasılıkla daha az problem ve daha iyi performans kodu olacak

Siz "Lorem" toplam uzunluğundan daha büyük olacağını, yeni başlayanlar için pozisyon 11 den başlıyoruz. Başlama_yeri İkincisi, sizin süre döngü, kaçıyorsun < endPos. $ EndPos henüz bir değer atanmamış, bu yüzden bile döngü girme değil.

Ben varım da, (muhtemelen istenen değil) döngünün başında indeksi artan ediyoruz. Genellikle dizin döngünün sonunda artırılır durumda, bu yüzden pozisyon kaydırmaya gerek kalmadan bir dizi "içine index" endeksi için kullanabilirsiniz.