Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Raczkującego pytań kilka
--Andrzej.W.--
post 4.04.2013, 20:58:21
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
fate
post 5.04.2013, 23:41:45
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ł


--------------------
Go to the top of the page
+Quote Post
-Andrzej.W.-
post 6.04.2013, 14:19:08
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
Go to the top of the page
+Quote Post
jaslanin
post 6.04.2013, 22:07:26
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
Go to the top of the page
+Quote Post
-Andrzej.W.-
post 6.04.2013, 23:30:56
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? biggrin.gif

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...sad.gif((
Dlaczego do jasnej cholery<symulowana agresja> smile.gif Zostały do siebie dodane dwa stringi. Jak mniemam to wspomniany wcześniej liberalizm, albo kolejny detal mi umyka.
Pozdrawiam smile.gif
Andrzej.

Ten post edytował Andrzej.W. 6.04.2013, 23:32:11
Go to the top of the page
+Quote Post
jaslanin
post 7.04.2013, 08:50:22
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
Go to the top of the page
+Quote Post
-Andrzej.W.-
post 7.04.2013, 11:58:54
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.smile.gif
Andrzej.

Ten post edytował Andrzej.W. 7.04.2013, 14:32:21
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: 19.07.2025 - 08:37