![]() |
![]() |
--Andrzej.W.-- |
![]()
Post
#1
|
Goście ![]() |
Witam.
Od niedawna uczę się php. Potrafię zrobić złożony portal, ale mam braki w podstawach, zatem postanowiłem się zagłębić w możliwości języka. Chciałbym być po prostu programistą, a nie tylko powielaczem. W związku z tym zacząłem ćwiczyć u podstaw. Aktualnie od kilku dni zajmują się samą pętlą for i możliwościami związanymi z jej zagnieżdżaniem w kolejnych pętlach. Kwestia druga, otóż znalazłem sobie, u niejakiego pana Gajdy, zadania na zastosowanie właśnie w/w pętli. Postanowiłem, pobawię się każdym z nich. Przykładowo, miałem napisać skrypt, który wyświetli równoległobok, a poszedłem o krok dalej i zamiast stałych wartości, napisałem cały skrypt oparty o 2 zmienne, które podaje klient, dzięki czemu można owy romb dowolnie modyfikować. W trakcie tej całej zabawy, nasunęła mi się analogia wzajemnego oddziaływania dwóch lub więcej pętli do współpracy dwóch i większej liczby kół zębatych ze sobą. I tak drążę własności tejże pętli. Poprzez tą zabawę zebrałem parę ciekawych wniosków, takich np. jak ominąć deklarację warunku trwania funkcji. Dla $i>0, wyświetliło mi -1:D. Nie wiem czy i jak można to wykorzystać, ale fajnie odkrywać takie ciekawostki. Opisałem oczywiście w dużym skrócie, wydarzenia z dzisiejszego dnia. Mam w związku z powyższym pytanie. Czy idę dobrą drogą? No i małą prośbę, o garść wskazówek, jakie się państwu nasuną w trakcie czytania mojego postu. Pozdrawiam serdecznie. Andrzej. |
|
|
![]() |
![]() ![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
szybko się uczysz, oby tak dalej, ja dalej będę powielał
-------------------- |
|
|
-Andrzej.W.- |
![]()
Post
#3
|
Goście ![]() |
Witam i dziękuję za odpowiedź.
Mam kolejne pytanie. Otóż z przypadku popełniłem coś takiego: Kod <?php function funkcja() { $time= explode(" ", microtime()); return $time[0]; } $t=funkcja(); echo $t[0].'<br>'; echo $t[1].'<br>'; echo $t[2].'<br>'; echo $t[3].'<br>'; echo $t[4].'<br>'; echo $t[5].'<br>'; echo $t[6].'<br>'; echo $t[7].'<br>'; echo $t[8].'<br>'; echo $t[9].'<br>'; echo $t[10].'<br>'; ?> Nie rozumiem dlaczego rekord $time[0] z tej funkcji dało się rozbić na kolejne rekordy, przecież nigdzie nie zdeklarowałem tego rozbicia. Może źle rozumuję, ale wg. tego zapisu : I Działanie funkcji. 1. Otrzymuję wartość przedzieloną spacją. 2. Za pomocą selektora w postaci spacji rozbijam tę wartość na tablicę z dwoma rekordami. 3. Zwracam wartość rekordu[0]. II Działanie kodu. 4. Przypisuję wartość funkcji funkcja() do zmiennej $t. czyli wartość rekord[0], w tym wypadku ilość sekund. 5. Dla mnie punkt 5, czyli rozbicie wartości $t nie ma prawa bytu i powinno zwrócić błąd, tudzież nic nie zwrócić. Dla mnie powyższy kod to dokładnie to samo co: 1. $tablica[0]=0.456749; 2. $t=$tablica[0] ergo: $t=0.456749; 3. echo $t[0].'<br>' do $t[8]; <--wedle jego logiki powinno również zwrócić kolejno 0 . 4 5 6 7 4 9 A przecież to nie ma prawa się wykonać, proszę o pomoc, bo już nie wyrabiam, nie wiem co mi umyka. Pozdrawiam. Andrzej. Ten post edytował Andrzej.W. 6.04.2013, 14:48:20 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
explode zwraca tablicę stringów (zawsze), gdyby to była tablica intów to by niczego nie zwróciło (null)
a do każdego stringu można się odwoływać jak do tablicy, gdzie indeks tablicy to numer znaku w stringu. Ten post edytował jaslanin 6.04.2013, 22:10:43 -------------------- Good luck and happy PHP'ing
|
|
|
-Andrzej.W.- |
![]()
Post
#5
|
Goście ![]() |
Witam i serdecznie dziękuje za odpowiedź, ale...
Otóż jak przeczytałem Twój post, postanowiłem sprawdzić. I pierwsza sprawa wygląda następująco: Kod <?php $t[0]=jarek; $zm=$t[0]; echo $zm[0]; ?> Otóż nadałem wartość w rekordzie nie opatrując jej cudzysłowem/ apostrofem i się wykonało. Uczono mnie, że cyferki dajemy bez w/w, litery/słowa z. Czy ja mam coś nie tak z kompilacją, czy php jest liberalny? ![]() A druga kwestia, to kontynuacja telenoweli z poprzedniego postu. Kod: Kod <?php function funkcja() { $time= explode(" ", microtime()); return $time[0]; } $f=funkcja(); $a=funkcja(); $b=$f+$a; var_dump($a); var_dump($f); echo $a.'<br>'; echo $f.'<br>'; echo $b; ?> Tak jak wspomniał kolega wcześniej, wywołana wartość z funkcji jest zmienną typu string <<hurrraaa> Problem rozwiązany..>, zbyt piękne aby było prawdziwe... ![]() Dlaczego do jasnej cholery<symulowana agresja> ![]() Pozdrawiam ![]() Andrzej. Ten post edytował Andrzej.W. 6.04.2013, 23:32:11 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
1. włącz raportowanie błędów E_ALL to będziesz widział że pojawia się błąd E_NOTICE, po prostu PHP domyślnie uznaje że jeżeli nie może znaleźć stałej jarek to znaczy że jest to string
2. tak PHP konwertuje niejawnie string do liczb by wykonać dodawanie, http://php.net/manual/en/language.types.type-juggling.php -------------------- Good luck and happy PHP'ing
|
|
|
-Andrzej.W.- |
![]()
Post
#7
|
Goście ![]() |
Witam, ponownie dziękuję za pomoc.
1. Od niedawna mam linuxa debian i nie wiedziałem, że trzeba samemu włączyć parser, ale już wszystko śmiga, 2. dzięki za link, wszystko już jasne. Pozdrawiam i życzę miłego popołudnia. ![]() Andrzej. Ten post edytował Andrzej.W. 7.04.2013, 14:32:21 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 08:37 |