Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Raczkującego pytań kilka
Forum PHP.pl > Forum > Przedszkole
-Andrzej.W.-
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.
fate
szybko się uczysz, oby tak dalej, ja dalej będę powielał
Andrzej.W.
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.
jaslanin
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.
Andrzej.W.
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.
jaslanin
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
Andrzej.W.
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.
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-2025 Invision Power Services, Inc.