TomRZ
2020-03-04 13:05

Heheszki PHP - po iteracji na tablicy z referencjami na wartościach, kopiowanie tej tablicy będzie z referencją do kluczy.

$tablica_a = ['heheszki' => 'raczej'];
$tablica_b = $tablica_a;
$tablica_b['heheszki'] = 'bez referencji';
echo '$tablica_a = <pre>'; print_r($tablica_a); echo '</pre>';

foreach ($tablica_a as $p => &$v) {}

$tablica_b = $tablica_a;
$tablica_b['heheszki'] = 'a teraz inaczej';
echo '$tablica_a = <pre>'; print_r($tablica_a); echo '</pre>';

http://sandbox.onlinephpfunct[...]86168bb20280d8cbf33d2391bf64f

#php #heheszki

Shalom

Osobiście nie wiem czemu bo to super przykład, idealnie na jakiegoś ctfa.

TomRZ

Wczoraj to odkrykłem kiedy coś mi nie grało w kodzie i nieźle się zdziwiłem. Co ciekawe sama zmienna nie jest kopiowana przez referencję, jeżeli dodam nowy klucz do $tablica_b - nie pojawi się w $tablica_a.

nrm
2020-01-04 09:46
lion137

@grski: Na szczęście sporo tego nie jest prawdziwy kod :) Po prostu rzeczy, które muszą być, do poprawnego działania frameworków, web, etc...

vpiotr

W przypadku JSa to zrozumiale (wzrost liczby repozytoriów). LeftPad, RightPad...

Silv
2019-08-07 04:36

Moja aplikacja bracket-string-validator nabiera piór i kształtów nie, kształtów nie.

Mięśni raczej nie. Nadal dwie funkcjonalności: sprawdzanie poprawności wyrażenia nawiasowego oraz testowanie wydajności (benchmarking). (Co by tu można dodać?)

Ale za to część odpowiedzialną za sprawdzanie poprawności wyrażenia nawiasowego mam już napisaną (zbyt dużo powiedziane) w Angularze. (Jeszcze muszę dodać testowanie wydajności.) To raz. Dwa, że planuję przepisać część logiki na Javę, nadto dodać GUI w C oraz bazę danych obsługującą SQL.

Kłopot trochę z testami jednostkowymi i integracyjnymi. Same testy pisze się w miarę zwyczajnie, przynajmniej w JavaScripcie. Oby tylko w innych technologiach nie było innych podejść (?). W Javie to jeszcze mogę sobie to jakoś wyobrazić, "zekstrapolować" z JavaScriptu, ale w C i w Bashu nie... będę musiał się nauczyć. Nie ma rady! Też testowanie na różnych środowiskach – trzeba mi ogarnąć Travisa i jego konfigurację. Nie wiem, czy da się ustawić konkretną dystrybucję Linuksa. Zresztą, czego ja oczekuję za darmo? Przy czym jest też plan, z początków tworzenia aplikacji, by postarać się o większą generyczność implementacji, co bym nie musiał martwić się dystrybucją. Jednak to mniej ważna sprawa, dodatek w zasadzie. Aplikacja ma działać na jednym środowisku bezbłędnie; inne – opcjonalnie i w nieokreślonej przyszłości.

W tym świetle na dalszy plan schodzi rozbudowa obecnego interfejsu CLI. Planuję m.in. dodać debug mode. I tyle. Miałbym pewnie więcej pomysłów, ale w sumie nie ma sensu, dopóki (eee... albo "skoro") nikt tego nie używa.

Z bardziej operacyjnych spraw: nadal nie wiem, jak powinien u mnie wyglądać deployment (zob. też wątek na naszym forum). Przy tylu technologiach robi się skomplikowanie... ale przy tym fajnie. :) (W teorii. Najprzyjemniej rozmyślać o tym, czego to ja nie zaimplementuję.)

Myślę też... nad PHP (tak ostrożnie). Ale prawie go nie znam. Nie wiem, czy chce mi się uczyć na tę imprezę. Ale jakby... byłby przyczynek dla mnie do ruszenia Coyote. Ale to znów... Docker. A Dockera nie mam w planach. (Jeszcze?)

Dla chętnych: planowanych jest parę innych, mniej "przebojowych" spraw – można rzucić okiem: https://github.com/silvuss/si[...]acket-string-validator/issues


Nie jest to celem tego wpisu, ale – jeśli ktoś chciałby pomóc (wiedzą), to bardzo chętnie. :) Tutaj wątek, w którym proszę o ocenę: Ocena małego projektu JS (Node.js) + Bash

#oprogramowanie #bracket-string-validator #javascript #c #bash #cli #gui #web #angular #java #sql #database #deployment #php #nodejs #feedback

somekind

Tzn. ja się nie odnoszę do Twojego programu, nie zaglądałem nawet do kodu. Piszę ogólnie.