![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
witajcie,
plik prostej klasy
oraz index
Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:wampwwwoopkcLotto_class.php on line 24 proszę ogólnie o opinie na temat tego kodu. Jestem samoukiem. Chciałbym dobrze zacząć. Ogólnie to coś działa ale najpierw wywala mi warninga (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) pozdrawiam Ten post edytował john_doe 6.01.2009, 21:51:36 |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytaj najpierw co zwraca funkcja rand() a czego w argumentach oczekuje in_array().
Przenoszę na Przedszkole. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
in_array() zakłada, że przekażesz element tablicy i tablcię. I w teście faktycznie tak robisz.
A w poprzednim przykładzie? Sprawdzasz istnienie elementu $this->tmp w tablicy $this->wylosowana. Tylko czy na pewno to jest tablica? Nie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mike zobacz na początku klasy mam
public $wylosowana = array(); co tu jest nie tak? |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
A co masz później? W wywołaniu.
$kcLotto->setWylosowane(); Poza tym metody totoLotto::setTmp() i totoLotto::setWylosowane() są pozbawione sensu. Obie wywalą komunikat Notice: Undefined variable. W pierwszym przypadku korzystasz ze zmiennej $tmp, której nie ma a w drugim jest to $wylosowana. Zmienne te powinny przyjść do metod jako argumenty. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
dziekuje Mike. racja. Pływam w OOP ale podoba mi sie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
w sumie na końcu dodałem to wywołanie. Chyba tego do końca nie rozumiem. ubzdurałem sobie, że każdą zmienna zwykła czy tablicową muszę zainisjować poprzez właśnie taką funkcję "set". czyli moge robić tak: (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? np. public $zmienna; a potem odwoływać się do niej $this -> zmienna; myślałem że funkcja set pozwoli mi dopiero na takie odwoływanie się bez $ (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) może to głupie ale ucze się OOP. jeszcze raz dzięki pozdrawiam. |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
może to głupie ale ucze się OOP. Uczenie się to zachowanie dalekie od głupiego. Nikt nie rodzi się z umiejętnością programowania obiektowego.Zresztą każdy uczy się całe życie. Ja dla przykładu siedzę teraz i też się uczę i pewnie popełniam błedy porównywalne do Twoich. Przenoszę z powrotem na OOP. Bo jednak faktycznie tu masz problemy. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mike a czy byłby sens gdybym zmienne tmp i wylosowana powołał do życia w konstruktorze?
function __construct() { $this -> zmienna = $zmienna; $this -> wylosowana = $wylosowana; } czy w ogóle nie ma takiej potrzeby... Możesz mi tylko jeszcze zobrazować o co chodzi z tymi :: (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? Ten post edytował john_doe 6.01.2009, 22:22:21 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 18 Dołączył: 6.03.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Potrzeby sam sobie określasz. Ale to, co ty ciągle robisz, już ci wytknął mike. Taka metoda jaką ty przed chwilą napisałeś jest bez sensu (może się przyzwyczailes do globali?). Ty tych zmiennych po prostu nie masz, więc co chcesz przypisać?
Tak jeśli już musisz (aczkolwiek w tym wypadku używanie setTmp() i setWylosowane() będzie chyba odpowiedniejsze niż robienie wszystkiego w konstruktorze. O :: sobie poczytaj w manualu, nosz proszę, podstaw to jednak sam powinieneś chociaż próbować poszukać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 07:43 |