Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]ukrycie błedu
robin5hood
post 31.01.2009, 17:47:16
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 16.05.2008

Ostrzeżenie: (10%)
X----


oto część kodu

Kod
private function search() // szuka wybranej danej
{
    for($i = 0; $i <= $this->row; $i++)
    {
  "230"      if(in_array($this->szukane, $this->dane[$i]))
        {
            $r = $i+1;
            echo 'Rekord: '.$r.'; szukane: <b>'.$this->szukane.'</b><br />';
        }        
    }
  
    $this->displayData();
}


pojawia się taki błąd ale wszystko dziła

Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\Program Files\Apache Group\Apache2\htdocs\class.student.php on line 230

co zrobić zeby ukryć ten błąd?
Go to the top of the page
+Quote Post
isso
post 31.01.2009, 17:50:59
Post #2





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

Ostrzeżenie: (0%)
-----


daj @ przed funkcją

// a tak w ogole;> to jestes na 100% pewien, ze działa ;>?

Ten post edytował isso 31.01.2009, 17:51:45


--------------------
Go to the top of the page
+Quote Post
robin5hood
post 31.01.2009, 18:01:44
Post #3





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 16.05.2008

Ostrzeżenie: (10%)
X----


a dokładniej mozesz to wpisac bo wpisuje w tylu miejscach i nic
Go to the top of the page
+Quote Post
230005
post 31.01.2009, 18:05:12
Post #4





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Jak dasz ten znaczek przed funkcją to tylko wygłuszy błędy, czyli tak naprawdę nic się nie zmieni. No a skoro wypisuje wrong datatype for second argument to znaczy, że drugi argument nie jest tablicą biggrin.gif .Tak mnie trochę zastanawia ten fragment w pętli for: $this->dane[$i])) zdaje się, że niepotrzebne jest [$i] - w końcu funkcja in_array przeszukuje całą tablicę, nie podajemy więc w którym rekordzie ma szukać...

Ten post edytował 230005 31.01.2009, 18:08:44
Go to the top of the page
+Quote Post
robin5hood
post 31.01.2009, 18:08:40
Post #5





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 16.05.2008

Ostrzeżenie: (10%)
X----


nie mam czasu na analize tego programu
musze tak zrobić zeby nie był widoczny więc
ale nie wiem w którym miejscu w tym kodzie
Go to the top of the page
+Quote Post
230005
post 31.01.2009, 18:17:05
Post #6





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Znaczek @ musisz dać w miejscu wywołania tej funkcji, czyli jak masz:

$twoja_zmienna = new twoja_klasa();

@$twoja_zmienna -> search();
Go to the top of the page
+Quote Post
robin5hood
post 31.01.2009, 18:25:14
Post #7





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 16.05.2008

Ostrzeżenie: (10%)
X----


dzięki o to chodziło
Go to the top of the page
+Quote Post
230005
post 31.01.2009, 18:26:55
Post #8





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Cieszy mnie to, ale powinieneś jednak znaleźć chwilę czasu na analizę tej klasy, bo ta funkcja nie działa biggrin.gif (no przynajmniej nie tak jak powinna)
Go to the top of the page
+Quote Post
nexis
post 31.01.2009, 18:29:49
Post #9





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


  1. <?php
  2. private function search ()
  3. {
  4.   for ( $i = 0; $i <= $this->row; $i++ ) {
  5.      if ( in_array ( $this->szukane, settype($this->dane[$i], 'string') ) ) {
  6.         printf('Rekord: %d; szukane: <b>%s</b><br />', $i+1, $this->szukane);
  7.      }        
  8.   }
  9.   $this->displayData();
  10. }
  11. ?>


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 20:02