Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Redefiniowanie inkrementacji
Forum PHP.pl > Forum > PHP
morthan
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.
nospor
ALe o co chodzi??

$i = 5; //ustalasz nową wartość smile.gif
morthan
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;
peter13135
  1. for($i=0; $i<12345; $i+=10)
  2. {
  3. //no code, no problem
  4. }


O to chodzi ?
morthan
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
peter13135
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
morthan
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
kradam
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.
PrinceOfPersia
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
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.