Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Moja pierwsza gierka :)
Forum PHP.pl > Inne > Hydepark
Th0e
Witam. Chciałbym państwu przedstawić moją pierwszą grę. Oto jej kod źdódłowy:

  1. <?php
  2. $level = file_get_contents('lvl.txt');
  3. $exp = file_get_contents('exp.txt');
  4. $hp = file_get_contents('hp.txt');
  5. $zloto = file_get_contents('zloto.txt');
  6. if ($exp > 99) //po zdobyciu ponad 99 expa daje 2 lvl
  7. {
  8. $level = 2;
  9. file_put_contents("lvl.txt",$level);
  10. }
  11.  
  12. if ($exp > 199) //po zdobyciu ponad 99 expa daje 2 lvl
  13. {
  14. $level = 3;
  15. file_put_contents("lvl.txt",$level);
  16. }
  17.  
  18. if ($exp > 399) //po zdobyciu ponad 99 expa daje 2 lvl
  19. {
  20. $level = 4;
  21. file_put_contents("lvl.txt",$level);
  22. }
  23.  
  24. if ($exp > 699) //po zdobyciu ponad 99 expa daje 2 lvl
  25. {
  26. $level = 5;
  27. file_put_contents("lvl.txt",$level);
  28. echo "maj dik gut kak <br />";
  29. }
  30. ?>
  31.  
  32. <h1>walka</h1>
  33. <p>Aby rozpoczac walke musisz wpisac "1" i kliknac "walcz".<p>
  34. <form method="post" />
  35. <input type="text" name="wartosc" />
  36. <input type="submit" value="walcz!" />
  37.  
  38. <?php
  39. $potworek = 10;
  40.  
  41. $otrzymane = $_POST['wartosc'];
  42.  
  43. if($otrzymane == 2) // po wpisaniu 2 zresetuje EXP
  44. $expplik = fopen("exp.txt", "w");
  45.  
  46. if($otrzymane == 1) // po wpisaniu 1 zaatakuje potworka
  47. {
  48. if ($hp >10) //sprawdza czy masz wystarczajaco HP by walczyc
  49. {
  50. $exp = $exp+$potworek;
  51. $zloto += 50;
  52. file_put_contents("exp.txt",$exp); // zapisze dodane exp do pliku z expem
  53. file_put_contents("zloto.txt",$zloto); // zapisze dodane zloto do pliku
  54. }
  55. }
  56.  
  57. if ($hp >10)
  58. {$hp -=10; //odbierze 10hp
  59. file_put_contents("hp.txt",$hp); //zapisze stan HP w pliku
  60. }
  61. else
  62. {
  63. echo "nie masz już zycia";
  64. }
  65. ?>
  66.  
  67. <h1>uzdrowiciel </h1>
  68. <p>Aby sie uzdrowic musisz wpisac ponizej "1" i kliknac "uzdrow". koszt 100zlota</p>
  69. <form method="post" />
  70. <input type="text" name="uzdrowiciel" />
  71. <input type="submit" value="uzdrow" />
  72.  
  73. <?php
  74. $uzdrowiciel=$_POST['uzdrowiciel'];
  75. if ($uzdrowiciel == 1)
  76. {
  77.  
  78. if($zloto > 100)
  79. {$hp = 100;
  80. $zloto -= 100;
  81. file_put_contents("zloto.txt",$zloto);
  82. file_put_contents("hp.txt",$hp);
  83. }
  84.  
  85. }
  86. ?>
  87.  
  88. <h2>statystyki postaci</h2>
  89. <?php
  90. echo "poziom $level <br />"; //pokazuje lvl
  91. echo "doswiadczenie $exp <br />"; //pokazuje EXP
  92. echo "zycie $hp <br />"; //pokazuje zycie
  93. echo "zloto $zloto"; //pokazuje zloto
  94. ?>


aby w nią pograć, należy w folderze symulatora serwera stworzyć plik php i wkleić do niego kod. potem utwórz 4 pliki tekstowe o nazwach:
hp --- w nim wpisz 100
level ---- w nim wpisz 1
exp ---- w nim wpisz 0
zloto ---- w nim wpisz 0

Teraz odpal symulator serwera i wpisz w przeglądarkę localhost snitch.gif

Żałosny kicz co nie? kicz, ale mój pierwszy <3

proszę o niezbyt bolesne krytyki, oraz rady i propozycje co dodać, w ten sposób odkryłem że świetnie się szkolę smile.gif
SHINvain
Moim zdaniem powinieneś zamienić formularze na bardziej intuicyjny, np.
Kod
<select name="wartosc">
    <option value="1">Walcz</option>
    <option value="2">Zresetuj doświadczenie</option>
</select>

Albo przy uzdrawianiu i tak masz jeden wybór, więc.
Kod
<form method="post">
<input type="hidden" name="uzdrowiciel" value="1" />
<input type="submit" name="submit" value="uzdrow" />
</form>

Albo zostawić samo pole "submit" i wtedy możesz sprawdzić to tak:
  1. if(isset($_POST['submit']))

zamiast tak:
  1. if ($uzdrowiciel == 1)


Dodatkowo powinieneś przefiltrować otrzymane dane funkcją intval().
  1. $otrzymane = intval($_POST['wartosc']);


Wpisywanie zmiennych w stringu nie jest chyba zbyt dobrym pomysłem. Powinieneś zrobić coś takiego.
  1. echo "poziom " . $level . " <br />";


I przy <form> walnąłeś gafę. Powinno być coś takiego.
Kod
<form method="post">
...
</form>


  1. if ($exp > 699) //po zdobyciu ponad 99 expa daje 2 lvl

To 699 czy 99?

Pokombinowałbym przy tym, aby zapisać wszystkie statystyki w jednym pliku albo bazie danych (dużo prostszy mechanizm).
Th0e
@up

Dzięki znam teraz kilka przydatnych sposobów.

Oto aktualny kod:
  1. <?php
  2. $level = file_get_contents('lvl.txt');
  3. $exp = file_get_contents('exp.txt');
  4. $hp = file_get_contents('hp.txt');
  5. $zloto = file_get_contents('zloto.txt');
  6. if ($exp > 99) //po zdobyciu ponad 99 expa daje 2 lvl
  7. {
  8. $level = 2;
  9. file_put_contents("lvl.txt",$level);
  10. }
  11.  
  12. if ($exp > 199) //po zdobyciu ponad 199 expa daje 3 lvl
  13. {
  14. $level = 3;
  15. file_put_contents("lvl.txt",$level);
  16. }
  17.  
  18. if ($exp > 399) //po zdobyciu ponad 399 expa daje 4 lvl
  19. {
  20. $level = 4;
  21. file_put_contents("lvl.txt",$level);
  22. }
  23.  
  24. if ($exp > 699) //po zdobyciu ponad 699 expa daje 5 lvl
  25. {
  26. $level = 5;
  27. file_put_contents("lvl.txt",$level);
  28. echo "maj dik gut kak <br />";
  29. }
  30. ?>
  31.  
  32. <h1>walka</h1>
  33.  
  34. <form method="post">
  35. <select name="wartosc">
  36. <option value="1">Walcz</option>
  37. <option value="2">Zresetuj doświadczenie</option>
  38. </select>
  39. <input type="submit" value="wykonaj">
  40. </form>
  41. <?php
  42. $potworek = 10;
  43.  
  44. $otrzymane = $_POST['wartosc'];
  45.  
  46. if($otrzymane == 2) // po wpisaniu 2 zresetuje EXP
  47. $expplik = fopen("exp.txt", "w");
  48.  
  49. if($otrzymane == 1) // po wpisaniu 1 zaatakuje potworka
  50. {
  51. if ($hp >10) //sprawdza czy masz wystarczajaco HP by walczyc
  52. {
  53. $exp = $exp+$potworek;
  54. $zloto += 50;
  55. file_put_contents("exp.txt",$exp); // zapisze dodane exp do pliku z expem
  56. file_put_contents("zloto.txt",$zloto); // zapisze dodane zloto do pliku
  57. }
  58. }
  59.  
  60. if ($hp >10)
  61. {$hp -=10; //odbierze 10hp
  62. file_put_contents("hp.txt",$hp); //zapisze stan HP w pliku
  63. }
  64. else
  65. {
  66. echo "nie masz już zycia";
  67. }
  68. ?>
  69.  
  70. <h1>uzdrowiciel </h1>
  71.  
  72. <form method="post">
  73. <input type="hidden" name="uzdrowiciel" value="1" />
  74. <input type="submit" name="submit" value="uzdrow" />
  75. </form>
  76. <?php
  77. $uzdrowiciel=$_POST['uzdrowiciel'];
  78. if ($uzdrowiciel == 1)
  79. {
  80.  
  81. if($zloto > 100)
  82. {$hp = 100;
  83. $zloto -= 100;
  84. file_put_contents("zloto.txt",$zloto);
  85. file_put_contents("hp.txt",$hp);
  86. }
  87.  
  88. }
  89. ?>
  90.  
  91. <h2>statystyki postaci</h2>
  92. <?php
  93. echo "poziom ". $level . "<br />"; //pokazuje lvl
  94. echo "doswiadczenie" .$exp. "<br />"; //pokazuje EXP
  95. echo "zycie ". $hp ." <br />"; //pokazuje zycie
  96. echo "zloto" . $zloto; //pokazuje zloto
  97.  
  98. ?>


ma ktoś jeszcze jakieś propozycje? co dodać, zmienić itp.
red.orel
Kod się wykonuje? Jeśli tak to jest poprawny. Jakościowo słabo. Pisać może każdy, jednak mało kto robi to sensownie. Stwórz przynajmniej schemat blokowy na kartce papieru.
materkamil
  1. $uzdrowiciel=$_POST['uzdrowiciel'];


1. Nie cierpię tych tutoriali o php z uw-team.org -> własnie one wprowadzają w błąd i wymyślają te przypisywania zmiennych. Założę się że to je właśnie oglądałeś.

2. Korzystaj z bazy danych a nie z plików txt

  1. $otrzymane = $_POST['wartosc'];


3. A co gdy nie istnieje w poście wartosc? Wywala błąd undefined index dlatego dodaj tam ifa z isset.

4. Nie wprowadzaj tylu zmiennych!

5. Zamiast " pisz ' - to lepiej wygląda.

6.

Nie: if()
{

tylko

if() {

Racja, trzeba się zabrać od nowa za ten kod.

Kiedyś pisałem coś podobnego, teraz sam nie mogę w to uwierzyć, jak można pisać taki kod ohmy.gif
peter13135
Cytat
5. Zamiast " pisz ' - to lepiej wygląda.

6.

Nie: if()
{

tylko

if() {


5. Mi się akurat bardziej podoba cudzysłów wink.gif Stosowanie apostrofu zamiast cudzysłowiu jest lepsze, ale nie ze względów estetycznych
6. A to niby czemu ? Są "dwie szkoły" stawiania klamerek, trudno rozsądzić która lepsza, więc niech sobie pisze tak jak chce.
materkamil
5. Tak, wiem, chodzi tutaj o setne sekundy optymalności. Ale już się nie zajmujmy tak drobnym czasem - tłumacząc początkującemu mówię prosto
6. Zdziwiony jestem twoją wypowiedzią. W przypadku "dwóch szkół" sięgnijmy do szkoły główne czyli do strony php.net o warunkach:
http://php.net/manual/en/control-structures.if.php

W przykładach pięknie pokazane jest że najbardziej prawidłową konstrukcją, używaną przez twórców php jest:

if() {
}

A konstrukcja:

if()
{
}

jest jedynie wymysłem programistów którzy piszą w PHP
Szymciosek
Ma być czytelnie i przejrzyście żebyś po x miesiącach zajrzał i widział wszystko i wiedział co gdzie jest.
materkamil
Podsumowywując:
1. Piszesz kod od początku
2. Korzystasz z bazy danych, i musisz koniecznie użyć PDO
3. Rezygnujesz z tego:
  1. $exp = $exp+$potworek;
  2. file_put_contents("exp.txt",$exp);


zapisując to tak:

  1. file_put_contents("exp.txt",$exp+$potworek);


4. " -> '

I to tyle w tym temacie (na razie)
pamil
Cytat(materkamil @ 20.09.2012, 19:34:16 ) *
if() {
}

Jak już powołujesz się na link, to przykład powinien wyglądać tak:
  1. /* po słowie kluczowym spacja */
  2. if ($condition === true && evaluate($sth) >= 2) {
  3.  
  4. }


Polecam zapoznać się z dokumentami PSR-*.

A tak, jak już się czepiamy standardów formatowania kodu - stawiaj spację po słowach kluczowych, przecinkach oddzielających argumenty. Stawiaj spację przed i po operatorach wszelakich (przypisania, porównania, etc.).

Poza tym DRY, w fragmencie z zmienianiem poziomu doświadczenai zawsze wykonujesz file_put_contents().
peter13135
Cytat(materkamil @ 20.09.2012, 19:34:16 ) *
5. Tak, wiem, chodzi tutaj o setne sekundy optymalności. Ale już się nie zajmujmy tak drobnym czasem - tłumacząc początkującemu mówię prosto
6. Zdziwiony jestem twoją wypowiedzią. W przypadku "dwóch szkół" sięgnijmy do szkoły główne czyli do strony php.net o warunkach:
http://php.net/manual/en/control-structures.if.php

W przykładach pięknie pokazane jest że najbardziej prawidłową konstrukcją, używaną przez twórców php jest:

if() {
}

A konstrukcja:

if()
{
}

jest jedynie wymysłem programistów którzy piszą w PHP



5. Ale akurat czytelność tu nie gra żadnej roli, apostrof wcale nie jest czytelniejszy od cudzysłowiu. Moim zdaniem cudzysłów może być bardziej czytelny i intuicyjny ze względu na to, że stringu w c,c++, java i pewnie wielu innych językach stringi są właśnie w cudzysłowach, a nie w apostrofach.
Uważasz, że gdybyś powiedział początkującemu, że zapis w apostrofie jest optymalniejszy to by było dla autora trudne do zrozumienia i dla tego trzema mu wciskać, że to jest brzydki zapis questionmark.gif?
6. Nie bardzo rozumiem o co chodzi z tą "szkołą główną php.pl". Klamerki nie są tylko własnością języka php, tylko ogólnie przyjętym standardem w językach, który chyba zapoczątkował język C (mogę się mylić). Poza tym, zarówno w dokumentacji php (ogólnie) jak i w tym konkretnym artkule dotyczącym ifów, który przytoczyłeś, oraz kodach pisanych w innych językach, w których blok kodu jest w klamrach są stosowane obydwie wersje formatowania. Czy to formatowanie, gdzie klamra otiwerająca jest w nowej linii jest wymysłem php tego nie wiem i nijak nie ma się do rzeczy.
Obie wersje formatowania mają swoich zwolenników, myślę, że ilościowo mniej więcej dzielą się po równo, a więc obie wersje są dopuszczalne, bo nie utarł się jeden schemat, który dla wszystkichjest czytelny. Ty wolisz taką wersję i masz na to swoje argumenty, ja wolę inną wersję i też mam na to swoje argumenty. To sprawa gustu, a nie poprawności kodu.

Tak samo są samochody z automatyczną skrzynią biegów jak i z manualną. Są tacy, któzy lubią sobie powajchować, są też tacy, którzy wolą trzymać kierownicę dwoma rękoma. Nie sądzisz, że śmiesznie by było, jakby kierowca lubujący się w automatach krytykował samochody z ręczną skrzynią biegów, albo ich kierowców ?

Również się zgadzam, że ma być czytelnie i przejrzyście. A dla orientacyjnie połowy programistów, czytelnie jest wtedy, gdy klamra otwierająca jest w nowej linijce.

PS. nie sądziłem, że znajdę Twój nick na tym forum w innym temacie niż w HP->HUMOR
materkamil
Cytat
PS. nie sądziłem, że znajdę Twój nick na tym forum w innym temacie niż w HP->HUMOR


questionmark.gif?

Jeśli chodzi o ify, jest to prawidłowe gdy piszemy sami skrypt. Jednak gdy tworzymy skrypt w grupie nie pasuje używać różnych stylów i bardziej pasuje używać jednego, najpopularniejszego if() {
}

Przykład: kod wordpressa, joomli, itp.

Jednak, jak kto woli. I tutaj zgadzam się z wami
Szymciosek
Nigdy nie wiesz do jakiej grupy trafisz smile.gif więc raczej ciężko ocenić jak lepiej a jak gorzej, taki zapis jest prosty do ewentualnie przestawienia się i pisania inaczej więc raczej nie robi to problemu gdybyś pisał:
if () {
}

a trafił na grupę, która pisze
if ()
{
}
Adi32
Z początku wydawało mi się, że ktoś przeniesie do ocen ale z biegiem czasu temat zaczął bardziej pasować do hydeparku.
Co do if'ów to nie spotkałem się z nikim kto stosowałby 2 linijkowe rozwiązanie, poza jakimiś jednoosobowymi kursami itp.
Za dziwne uważam, że komuś może poprawić czytelność przeniesienie '{' fo nowej linij, sądzę, że to kwestia przyzwyczajenia oczywiście nie chce nikogo obrazić.
Dodatkowo kod jest krótszy choć to słaby argument.
viking
Najlepiej zastosować się do tych https://github.com/php-fig/fig-standards/bl...-style-guide.md wytycznych i z głowy cała dyskusja.
Adi32
Nowa linia po nagłówkach funkcji i metod? Moim zdaniem taka sama sprawa jak z if'ami...
redeemer
Mała dygresja z mojej strony: kiedyś, dobrych parę lat temu jak pisałem w C nie wyobrażałem sobie pisać inaczej niż { w nowej linii. Teraz jest zupełnie na odwrót wink.gif @Adi32 kod jest krótszy, ale w takim sensie, że więcej go widać na ekranie i jest to jeden IMHO z ważniejszych argumentów za tym stylem. Podoba mi się rozwiązanie z Pythona, gdzie całkowicie zrezygnowano z instrukcji określających początek i koniec bloku, a tą rolę pełnią zwyczajnie "wcięcia" (które i tak robimy, a przynajmniej powinniśmy). Nie programowałem jednak w tym języku i nie wiem na ile jest to wygodne i czy nie wiąże się z jakimiś uciążnieniami (taby? spacje? ile spacji? szybkie przenoszenie na koniec/początek bloku w IDE?)
viking
Dziwne to trochę (osobiście też wolę w jednej linii) ale zarówno Zend jak i Symfony a pewnie jeszcze masa innych projektów się do tego stosuje, łatwo znaleźć ustawienia dla edytorów więc cóż.. jak standard to standard.
Th0e
ludzie co to za dyskusja.
piszę { od nowej linii, bo dzięki temu kod zdaje mi się być czytelniejszy, z resztą jeśli ktoś się wczytał to zauważył że ogólnie lubię zamieszczać jak najmniej danych w linii snitch.gif
Skoro to taka różnica to od dziś będę pisał if(){
załatwione smile.gif
Wiem że mogłem to zrobić z bazami, ale jeszcze nie miałem styczności z MYSQL, poza tym to było robione tak 4fun by utrwalić wiedzę po przebrnięciu jakimś cudem przez 5 rozdziałów kursu: http://kursphp.com

a co do projektu to jeszcze coś wstawię, na razie nie mam pojęcia co smile.gif
Adi32
Też zaczynałem od pisania takich rzeczy.
Zapoznaj się z MySQL'em - podstawy pracy z bazą danych są prostsze niż się to wcześniej wydaje smile.gif

I chyba trochę przesadzasz w rzucaniu pomagajkami.
!*!
A niech mnie, materkamil uczy innych jak pisać i formatować kod! klękajcie narody...

Jak wspomniał pamil PSR-* załatwia sprawę. Klamra w nowej linii to tylko kwestia estetyczna i nie ma najmniejszego znaczenia, nawyk jeszcze z czasów, gdy większości z Was nie było na świecie wink.gif
scanner
Wyzerowałem praktycznie wszystkie pomagajki.
Pół tony tekstu o wyższości ' nad " i położenia klamer - i to od ludzi, którzy w najlepszym przypadku są początkującymi programistami... ręce opadają.

Th0e, wszystkie dane mozęsz zapisac w jenym pliku, (ini, yaml, xml, tablica php) - chociaż bardziej bym się skłaniał przynajmniej do SQLite - może się nauczyć czegoś przydatnego.
Pozatym sugeruję rozbicie tego pliku na kilka:

1. Wyświetlający "panel"
2. przeliczające wskaźniki w zależności od akcji

Już samo to spowoduje, że kod będzie czytelniejszy i łatwiejszy w zarządzaniu i ewentualnej rozbudowie.
bim2
Cytat
Wyzerowałem praktycznie wszystkie pomagajki.
Pół tony tekstu o wyższości ' nad " i położenia klamer - i to od ludzi, którzy w najlepszym przypadku są początkującymi programistami... ręce opadają.

Scanner, gdyby były lajki to byś odemnie dostał smile.gif

Co do autora tematu. Fajnie Ci idzie początek, postaraj się teraz zabrać za coś innego. Pisać i pisać skrypty, strony. Oglądać inne, podglądać rozwiązania z cmsów itd. Ja np. zaczynałem od modowania jPortal. Na początek proste rzeczy, potem doszło mysql, potem jakiś mini cms itd. Najwięcej się nauczysz pisząc i zdobywając doświadczenie smile.gif
Th0e
Cytat(scanner @ 20.09.2012, 23:33:12 ) *
Wyzerowałem praktycznie wszystkie pomagajki.
Pół tony tekstu o wyższości ' nad " i położenia klamer - i to od ludzi, którzy w najlepszym przypadku są początkującymi programistami... ręce opadają.

Th0e, wszystkie dane mozęsz zapisac w jenym pliku, (ini, yaml, xml, tablica php) - chociaż bardziej bym się skłaniał przynajmniej do SQLite - może się nauczyć czegoś przydatnego.
Pozatym sugeruję rozbicie tego pliku na kilka:

1. Wyświetlający "panel"
2. przeliczające wskaźniki w zależności od akcji

Już samo to spowoduje, że kod będzie czytelniejszy i łatwiejszy w zarządzaniu i ewentualnej rozbudowie.


dziękuję za radę. na pewno zastosuje to w moich żałosnych "projektach" smile.gif
i ogarnę się z tymi pomagajkami snitch.gif

Cytat(bim2 @ 20.09.2012, 23:44:18 ) *
Scanner, gdyby były lajki to byś odemnie dostał smile.gif

Co do autora tematu. Fajnie Ci idzie początek, postaraj się teraz zabrać za coś innego. Pisać i pisać skrypty, strony. Oglądać inne, podglądać rozwiązania z cmsów itd. Ja np. zaczynałem od modowania jPortal. Na początek proste rzeczy, potem doszło mysql, potem jakiś mini cms itd. Najwięcej się nauczysz pisząc i zdobywając doświadczenie smile.gif

dziękuję. Szczerze to myślałem że spotka mnie fala hejtu smile.gif zamierzam ściągnąć jakiś darmowy silnik gry i w nim pogrzebać, co byście proponowali na początek? najlepiej jeśli był by to silnik z polskimi komentarzami.

PS: znacie jakiś dobry kurs MYSQL? ciężko znalesc coś dobrego.
Szymciosek
Nawet gdyby spotkała Cie takowa fala hejtu jak to napisałeś, to nie ma się czym przejmować tylko w sumie dostosować się do wypowiedzi, uczyć się na błędach i wprowadzać poprawki.
Adi32
Cytat(Th0e @ 21.09.2012, 14:12:46 ) *
PS: znacie jakiś dobry kurs MYSQL? ciężko znalesc coś dobrego.


Na początek praktycznie każdy kurs będzie odpowiedni do nauki SQLa, uważaj tylko, żeby nie uczyć się na starcie starych błędnych nawyków, nie używamy już funkcji mysql_*. Używaj najlepiej PDO.

Cytat(Szymciosek @ 21.09.2012, 14:16:36 ) *
Nawet gdyby spotkała Cie takowa fala hejtu jak to napisałeś, to nie ma się czym przejmować tylko w sumie dostosować się do wypowiedzi, uczyć się na błędach i wprowadzać poprawki.


To prawda, często spotkasz się z falą krytyki, szczególnie ze strony !*! ale zawsze pamiętaj, że to dla Twojego dobra.
peter13135
A, że tak się spytam... czemu nauka "obsługi bazy danych" z poziomu mysql_* jest zła ? Przecież te funkcje na początku są po prostu wystarczające i proste w użyciu. Zanim autor nauczy się pisać (pseudo)obiektowo, trochę czasu minie. A bez znajomości pseudoobiektowości trudno się połapać w mysqli czy pdo (tak mi się wydaje tongue.gif)
Adi32
Cytat(peter13135 @ 21.09.2012, 14:22:27 ) *
A, że tak się spytam... czemu nauka "obsługi bazy danych" z poziomu mysql_* jest zła ? Przecież te funkcje na początku są po prostu wystarczające i proste w użyciu. Zanim autor nauczy się pisać (pseudo)obiektowo, trochę czasu minie. A bez znajomości pseudoobiektowości trudno się połapać w mysqli czy pdo (tak mi się wydaje tongue.gif)


Może się tak wydawać ale w takim razie co mieliby powiedzieć początkujący Javy? Oni nie mogą zacząć od "strony strukturalnej" a jakoś sobie radzą.
Może podejście od tej strony jest nieco bardziej zawiłe, ale przecież nie musi od razu rozumieć "obiektowości".

To że będzie używał '->' a nie będzie wiedział dlaczego to nie przeszkoda, żeby używać PDO. Tak mi się przynajmniej wydaje a i może przyśpieszyć naukę obiektowości.
viking
Dlatego:
Cytat
Use of this extension is discouraged. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

mysqli_query()
PDO::query()

http://www.php.net/manual/en/function.mysql-query.php

Teraz wszystko opiera się na obiekatch (mowa o projektach) więc dlaczego ma się nie uczyć? Gdyby zaczął naukę od innego języka który nie ma takiego bajzlu w kodzie musiałby od samego początku dowiedzieć się czym jest OOP.
peter13135
Na mojej oczelni jest najpierw nauka programowania strukturalnego (najpierw asm, potem pascal). Następnie będę miał C, potem chyba C++ potem java i/lubc#. Czyli od strukturalnego do obiektowego, bo obiektówka jest trudniejsza. Dlatego moim zdaniem, nauka programowania wykorzystując tylko struktralne funkcje nie jest grzechem. Nie są one zalecane... ale przecież to nauka, a nie tworzenie komercyjnych aplikacji.

W sumie masz rację, że korzystanie z obiektów nie jest trudne, wystarczy wygooglować sobie kawałek kodu który pobiera coś z bazy i dostosowywać go do swoich możliwości.

Co do javy, czy znacie kogoś, to zaczynał od nauki tego języka ? Pewnie są takie osoby, ale nauka obiektowości od zera jest dużym wyzwaniem. Chociaż z drugiej strony... można mieć jedną klasę, jedną metodę i w tej metodzie pisać strukturalnie nie zagłębiając się w szczegóły poco jest ta klasa i po co jest ta metoda i dla czego jest ona statyczna.
Th0e
  1. <?php // LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE
  2.  
  3. $losowanko = $_POST['loteria'];
  4.  
  5. if ($losowanko == "loteria")
  6. {
  7. $losowanie = rand(1,10);
  8. if ($losowanie == 6)
  9. {
  10. echo "Gratulacje! Wygrales! Odswierz strone (kliknij [F5])by otrzymac 100 zlota!";
  11. $zloto += 100;
  12. file_put_contents("zloto.txt",$zloto);
  13. }
  14. else
  15. {
  16. $zloto -= 10;
  17. file_put_contents("zloto.txt",$zloto);
  18. }
  19. } //LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE
  20. ?>


--- nowy bajzel dodany do pseudo projektu smile.gif
zamieszczam to tak tylko, gdyby komuś miało się to przydać, gdyby ktoś znał łatwiejsze sposoby smile.gif
niech wątek się rozwija smile.gif
Adi32
Cytat(peter13135 @ 21.09.2012, 14:57:17 ) *
Na mojej oczelni jest najpierw nauka programowania strukturalnego (najpierw asm, potem pascal). Następnie będę miał C, potem chyba C++ potem java i/lubc#. Czyli od strukturalnego do obiektowego, bo obiektówka jest trudniejsza. Dlatego moim zdaniem, nauka programowania wykorzystując tylko struktralne funkcje nie jest grzechem. Nie są one zalecane... ale przecież to nauka, a nie tworzenie komercyjnych aplikacji.

W sumie masz rację, że korzystanie z obiektów nie jest trudne, wystarczy wygooglować sobie kawałek kodu który pobiera coś z bazy i dostosowywać go do swoich możliwości.

Co do javy, czy znacie kogoś, to zaczynał od nauki tego języka ? Pewnie są takie osoby, ale nauka obiektowości od zera jest dużym wyzwaniem. Chociaż z drugiej strony... można mieć jedną klasę, jedną metodę i w tej metodzie pisać strukturalnie nie zagłębiając się w szczegóły poco jest ta klasa i po co jest ta metoda i dla czego jest ona statyczna.


Inaczej, kto zaczął od obiektowości szybciej ją pojmie pod pojęciem względnym. Ten kto programował tylko strukturalnie musi się "przestawić" a z tym bywa różnie. Reasumując jeżeli będzie się tereaz uczył wyłącznie strukturalnego to potem będzie się musiał uczyć jeszcze raz. Ponadto w Javie nie jest językiem strukturalnym, to znaczy, że teoretycznie możesz sobie w main() pisać strukturalnie ale wykorzystanie jakiejkolwiek wbudowanej "funkcji" Javy wiąże się z obiektowością, choć w większości są to metody statyczne.

Cytat(Th0e @ 21.09.2012, 14:58:18 ) *
  1. <?php // LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE
  2.  
  3. $losowanko = $_POST['loteria'];
  4.  
  5. if ($losowanko == "loteria")
  6. {
  7. $losowanie = rand(1,10);
  8. if ($losowanie == 6)
  9. {
  10. echo "Gratulacje! Wygrales! Odswierz strone (kliknij [F5])by otrzymac 100 zlota!";
  11. $zloto += 100;
  12. file_put_contents("zloto.txt",$zloto);
  13. }
  14. else
  15. {
  16. $zloto -= 10;
  17. file_put_contents("zloto.txt",$zloto);
  18. }
  19. } //LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE
  20. ?>


--- nowy bajzel dodany do pseudo projektu smile.gif
zamieszczam to tak tylko, gdyby komuś miało się to przydać, gdyby ktoś znał łatwiejsze sposoby smile.gif
niech wątek się rozwija smile.gif


Spójrz jak wygląda Twój kod po sformatowaniu przez NetBeans'a:
  1. <?php
  2.  
  3. // LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE
  4.  
  5. $losowanko = $_POST['loteria'];
  6.  
  7. if ($losowanko == "loteria") {
  8. $losowanie = rand(1, 10);
  9. if ($losowanie == 6) {
  10. echo "Gratulacje! Wygrales! Odswierz strone (kliknij [F5])by otrzymac 100 zlota!";
  11. $zloto += 100;
  12. file_put_contents("zloto.txt", $zloto);
  13. } else {
  14. $zloto -= 10;
  15. file_put_contents("zloto.txt", $zloto);
  16. }
  17. } //LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE LOSOWANIE
  18. ?>


Radziłbym Ci się przestawić, i zacząć od pisania kodu "czytelnego".
Th0e
netbeans to jakiś program do edycji?
Adi32
Cytat(Th0e @ 21.09.2012, 15:25:13 ) *
netbeans to jakiś program do edycji?

Tak, intuicyjny i w miarę prosty IDE.
Bardzo pomaga przy pisaniu w popularnych językach w tym PHP.

Wersja z samym PHP waży około 50MB, polecam Ci sobie ściągnąć bo jest darmowy.
Jest jeszcze eClipse ale zdaje mi się, że bardziej pasowałby Ci NetBeans.
materkamil
Jeśli chodzi o ten nowy kod to powiedz po co Ci to:

  1. $losowanko = $_POST['loteria'];


oraz dlaczego nie jest tu sprawdzanie czy istnieje w poście taka zmienna jak loteria. Przecież taki wamp czy xampp od razu wyświetli błąd
bim2
Piszemy odswieŻ smile.gif

Po drugie, poczytaj na internecie i włącz sobie pełną obsługę błędów razem z NOTICE. Bo obecnie jak ktoś nie wyśle $_POST['loteria'] dostaniesz notice właśnie. Od początku ucz się pisać bez błędów, będzie prościej wszystko zrozumieć czy znaleźć jakiś błąd trudny.
binprogrammer
  1. 1. Nie cierpię tych tutoriali o php z uw-team.org -> własnie one wprowadzają w błąd i wymyślają te przypisywania zmiennych. Założę się że to je właśnie oglądałeś.


Moim zdaniem są to bardzo dobre poradniki, które pokazują początkującym jak należy rozumieć pojęcie "programowanie". Jeżeli chodzi o przypisywanie hiperglobalnych do zwykłych zmiennych to to jest praktyka stosowana również w wielu książkach, nie ma co się oczuwikać - jest to wygodne! Można to również zabezpieczyć na jakieś sposoby i wtedy jest wygoda i bezpieczeństwo.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.