← Uz sākumu

PHP hints

2004. gada 19. februārī, 16 komentāri

Tik tikko ienāca prātā doma, kā iekš PHP samainīt vietām divu mainīgo vērtības, neizmantojot trešo mainīgo.

Agrāk rakstīju:

$c = $a;

$a = $b;

$b = $c;

Tagad rakstīšu:

list($a, $b) = array($b, $a);

Tu atbildi augstāk redzamajam komentāram. Atcelt

Gravatar Delf

2004. gada 19. februārī, plkst. 09:41

kur nozagi ideju ? jeb pac izdomaaji so gjenialo ideju :)

$a = $a + $b; $b = $a - $b; $a = $a - $b;

7 = 4 + 3 4 = 7 - 3 3 = 7 - 4

taa pat arii ar * un / :)

Gravatar Delf

2004. gada 19. februārī, plkst. 09:42

/me liekas ka php gana iekshaa izmanto kaut ko "tresho" (neba temp array)

Gravatar laacz

2004. gada 19. februārī, plkst. 09:58

Delf: Tavs gadījums der tikai, ja vietām jāmaina skaitļi. A tas, ka PHP pats izmanto kaut ko trešo, mani nekrata, jo ātrāk būs tad, ja PHP interpretators jamo iznmanto, nekā tad, ja es pats to daru :)

Gravatar Mark

2004. gada 19. februārī, plkst. 11:59

Īsti kodieri domā bitos :)

$a = $a ^ $b; $b = $a ^ $b; $a = $a ^ $b;

Gravatar cyberspace

2004. gada 19. februārī, plkst. 12:24

Intresanti kā tas ir realizets zemaka līmeni. Sportiskas intreser pēc:) varbūt tomer is gadijumi kad labak ir izmantot tresso mainigo:)

Gravatar Smejmoon

2004. gada 19. februārī, plkst. 12:27

No offence:

a,b = b,a

zem segas tur notiek taa

tuple(a,b) = tuple(b,a)

Gravatar --

2004. gada 19. februārī, plkst. 13:20

Ja veseli skaitļi, tad visātrāk ir: a <-> b:

a = a xor b b = b xor a a = a xor b

Gravatar sklp

2004. gada 19. februārī, plkst. 13:21

Vai pat īsāk ;) $a^=$b^=$a^=$b;

Gravatar Lupus

2004. gada 19. februārī, plkst. 14:53

vienkāršība? Es tādu kodu lasīšu un domāšu kas tur notiek. Man labāk patīk ja viss smuki priekšā uzrakstīts.

Nemaz nerunājot par to ka šitādos sīkumos tev rezultātā savāksies ievērojams overheads.

Gravatar Grrr

2004. gada 19. februārī, plkst. 17:59

Nemaz nerunājot par to, vai PHP tiešām otro variantu izpildīs ātrāk.

Bez tam.. sauciet mani par tupu, bet iedodiet piemēru, kur mainīgos jāswapo vietām, un kuru nevar pārrakstīt elegantāk (un iespējams ātrāk).

Vienīgais kas nāk prātā ir zortēšana, bet nu tur jau nu gan būtu labāk izmantot built-inus.

Gravatar cu

2004. gada 19. februārī, plkst. 18:46

matemātika: a = 4 b = 3 a = a+b // 7 b = a - b // 7 - 3 = 4 a = a - b // 7 - 4 = 3

Gravatar cu

2004. gada 19. februārī, plkst. 19:11

ak šausmas, delf (pats pirmais komentārs) ir pilnīgi kopējis mani :))

Gravatar Smejmoon

2004. gada 19. februārī, plkst. 22:06

Starpcitu lāča variants strādā jebkuram mainīgo daudzumam :P

Gravatar Druu

2004. gada 20. februārī, plkst. 09:36

...un ir daudz saprotamāks par matemātiskajām idejām

Gravatar Armis

2004. gada 20. februārī, plkst. 14:32

Butiba sis tipa hints darbojas visas progr.val., biezi vien jaizmanto kads(-i) liekais(-ie) mainigie, lai kaut ko apmainitu vietam!!! Ja iet skola un lasa gramatas, tad sadu padomu var uzzinat....es to uzzinaju pirms 4 gadiem.... :-PPPP