Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Redefiniowanie inkrementacji
morthan
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

Ostrzeżenie: (0%)
-----


Witam,

wydaje mi się, że gdzieś kiedyś wpadłem na funcję, którą można zmienić wartość inkrementacji danej zmiennej (redefiniować inrementacje). Dziś chciałem to wykozystac ale nie pamiętam ja ona się nazywa.
Ktoś wie ja to szło?

Z góry dzięki.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ALe o co chodzi??

$i = 5; //ustalasz nową wartość smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
morthan
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

Ostrzeżenie: (0%)
-----


Normalnie masz:

  1. $i++;
  2. $i+=1;
  3. $i= $i+1;


te wyrażenia są równoważne. A ja chcę by w danym obrębie kodu działanie ikrementacji np. w FOR było takie:

  1. $i++;
  2. $i+=10;
  3. $i= $i+10;
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


  1. for($i=0; $i<12345; $i+=10)
  2. {
  3. //no code, no problem
  4. }


O to chodzi ?


--------------------
:)
Go to the top of the page
+Quote Post
morthan
post
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

Ostrzeżenie: (0%)
-----


Tak napisałem.
A chodzi o to ja zmienić działanie ++ by nie dodawało +1 tylko +10, albo dowolną inna liczbę.
Gdzieś widziałem jak to się robi w PHP, w C++ można to zrobić bez problemu.
Tylko nie pamiętam nazwy metody.
A dlaczego tak chcę zrobić. Bo potrzebuję to w jednej klasie w kilkunastu miejscach wywołać i będzie to bajerancko wygladało. happy.gif

EDIT:
Literówki

Ten post edytował morthan 6.06.2013, 10:02:50
Go to the top of the page
+Quote Post
peter13135
post
Post #6





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Skoro w cpp to bez problemu, to pokaż jak to robisz w cpp, postaramy się to przełożyć na php.

Edit:// CHyba chodzi Ci o przeciążanie operatora ++. W PHP nie da się przeciążać operatorów wink.gif

Ten post edytował peter13135 6.06.2013, 10:23:26


--------------------
:)
Go to the top of the page
+Quote Post
morthan
post
Post #7





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

Ostrzeżenie: (0%)
-----


Właśnie chodzi o przeciążanie operatora. Na pewno się nie da? Chyba coś takiego gdzieś widziałem. Ale pamięć mnie może mylić. Teraz przynajmniej nazwę pamiętam. wink.gif
Dzięki za pomoc.

Edit: Chyba musze odkurzyć Cpp, bo widzę pamięć zaczyna szwankować.

Edit 2:
i dla potomnych:
http://pecl.php.net/package/operator
aczkolwie to jest tylko rozszeżenie a nie standart. Szkoda. sad.gif

Ten post edytował morthan 6.06.2013, 10:43:47
Go to the top of the page
+Quote Post
kradam
post
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 7.06.2013

Ostrzeżenie: (0%)
-----


Przeciążanie operatorów ma sens w kontekście danej klasy. Z czymś takim jak przeciążanie w zakresie danego fragmentu kodu się nie spotkałem i nie umiem sobie wyobrazić zastosowania. Abstrahując od języka.
Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #9





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


zawsze są inne sposoby (niezależnie od języka).
Np. można zdefiniować własną funkcję do inkrementacji czy nawet funkcję do robienia pętli, z domyślnym krokiem 10.
Można stworzyć również własne iteratory (mówię o wzorcu projektowym, niezależnym od języka - chociaż i w PHP jest coś takiego jak interfejs iteratora - chociaż nie korzystałem z tego)

zastanawiam się tylko do czego to potrzebne w tym przypadku (no bo napisać $i+=10 zamiast $i++, to nie jest żaden wysiłek). Albo można zdefiniować gdzieś zmienną $step i pisać $i+=$step


--------------------
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 Aktualny czas: 20.08.2025 - 16:50