Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jeden Wielki OffTopick
Forum PHP.pl > Inne > Hydepark
Stron: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235
Pyton_000
Nie pojmuję fenomenu Win10.

Mam 7 ale tylko po to żeby sobie czasami Diablo odpalić albo jakieś inne i po nic więcej.
!*!
Cytat(Evinek @ 11.02.2016, 08:27:17 ) *
Chyba później zrobię formatach, usunę nawet ukrytą partycje, wgram czystego 8.1 od Windowsa oraz ręcznie sterowniki i przejdę na 10. Wydaje mi się, że instalacja była o wiele szybsza w taki sposób (gdy miałem już multum aplikacji) niż teraz z "czystym" Windowsem od Asusa - ponad 2 godziny instalowało się...


To jak już miałeś win10 i go aktywowałeś, to nie musisz zaczynać instalacji od win8.1, wystarczy obraz iso od ms z win10, a sterowniki jeśli nie ruszają instalatorem, to najzwyczajniej je rozpakuj i odpal z menadżera urządzeń. I masz płytkę z win8.1 od producenta? Farciarz... W innym wypadku nie usuwałbym tej partycji.
Wazniak96
Ja też byłem zwolennikiem 7 dopóki nie zainstalowałem win10. Ogólnie podczas pracy z kompem nie zauważam różnicy, który system lepszy(prócz przydatnych narzędzi jak np. Instalacja z ISO bez dodatkowych programów) ale na studiach zostałem zmuszony do instalacji Visual Studio thumbsdownsmileyanim.gif

Perypetie były straszne. 2015 chciał Explorera w wersji 8. Gdy chciałem zainstalować to znów krzyczał, że chce win7 z jakimś tam servicepack. No ok.. Chcę pobrać starszą wersję vs z DreamsPark ale już nie pobiera się ISO tylko jakiś gówniany instalator, który korzystał z Explorera i tak o to nie mogłem w tym instalatorze nawet nic zrobić.

W końcu w nerwach bo 4 dni do deadline, a projekt nawet nie ruszony, zmiana dysku i instalacja win10(education z DreamsPark) i tak do dzisiaj korzystam wink.gif

Ogólnie gdzieś czytałem, że win10 jest ponoć nawet lepiej zoptymalizowany niż XP, w każdym razie na 9 letnim lapku śmiga bez problemów. Ze sterami też jakiegoś większego problemu nie było.
com
jakieś dziwne rzeczy piszesz, działa na win7 wszystko, no chyba ze nie miałeś sp1 bo innego nie było. Ale to znaczy ze system miałeś tam archaiczny wink.gif
O$iek
Czasami się zastanawiam, czy ja mam niespotykane szczęście, czy inni po prostu są mistrzami w tworzeniu nowych problemów i późniejszym ich rozwiązywaniu. smile.gif
buliq
http://www.phpcon.pl/2015/en/materialy
!*!
@up - w końcu ktoś to ogarnął po tylu latach biggrin.gif
Wazniak96
Tak. Archaiczny system. Akurat z tego dysku brat wcześniej korzystał, nie formatowalem ani nic nie grzebałem bo po co skoro wszystko działało mi jak trzeba do tej pory wink.gif

@O$iek po 1 nie jesteś napewno jakiś niedouczony psuja po drugie pewnie nie masz laptopa z epoki kamienia łupanego haha.gif

Bratu często laptopy przywożą do naprawy to to co ludzie odwalają z nimi to przechodzi ludzkie pojęcie. Zalewanie piwem to klasyk a zdarzają się i sztuki z rozwaloną płytą główną bo właściciel się "zdenerwował". biggrin.gif

Swoją drogą często znajomi prosili mnie o pomoc bo system zawiesił się podczas aktualizacji i ani myślał ruszyć od nowa.
Comandeer
Ludzie, serio jestem coraz bardziej popularny – niektórzy rejestrują się na forach tylko po to, żeby mi napisać jakie brednie wypisuję biggrin.gif http://forum.miroslawzelent.pl/109776/html...-czy-id#c109845
com
nwm czy to powód do dumy tongue.gif lubisz wkurzać ludzi biggrin.gif
Comandeer
Ja? Nic nie zrobiłem, napisałem o dobrych praktykach i się stało… tongue.gif
com
niektórzy maja swoje racje i im nie przegadasz tongue.gif
Pyton_000
O widzisz smile.gif To się nazywa popularność haha.gif
ZenekN
Hej mam pytanko, od kilku dni zacząłem ogarniać język C++ mam pytanie dlaczego język PHP nie ma dostępu do powłoki <windows.h> smile.gif ?
kapslokk
pyro
Właśnie się dowiedziałem, że takie coś nie sypie błędami, a nawet pokazuje wartość:

  1. <?php
  2.  
  3. class A {
  4.  
  5. public function something() {
  6. $this->dqwidjoqiwdqj = 123;
  7. var_dump($this->dqwidjoqiwdqj);
  8. }
  9.  
  10. }
  11.  
  12. $a = new A();
  13. $a->something(); // 123


Tyle lat w nieświadomości...

Co więcej:

  1. <?php
  2.  
  3. class A {
  4.  
  5. public function something() {
  6. $this->dqwidjoqiwdqj = 123;
  7. var_dump($this->dqwidjoqiwdqj);
  8. var_dump(property_exists($this, 'dqwidjoqiwdqj'));
  9. var_dump(property_exists($this, 'asdasd'));
  10. }
  11.  
  12. }
  13.  
  14. $a = new A();
  15. $a->something();
  16. // 123
  17. // true
  18. // false
Pyton_000
A czemu miałyby sypać wink.gif
pyro
Bo w normalnym języku, np. Javie powinno pluć błędami o próbie działania na niezadeklarowanej właściwości:

Kod
public class HelloWorld{

     public static void main(String []args){
        A a = new A();
        a.something();
     }
}


Kod
public class A {
    
    public void Something() {
        this.asdasd = 123;
        System.out.println(this.asdasd);
    }

}


Kod
sh-4.3$ javac HelloWorld.java                                                                                                                                                                                                          HelloWorld.java:5: error: cannot find symbol                                                                                                                                                                                                   a.something();                                                                                                                                                                                                                          ^                                                                                                                                                                                                                               symbol:   method something()                                                                                                                                                                                                           location: variable a of type A                                                                                                                                                                                                       ./A.java:4: error: cannot find symbol                                                                                                                                                                                                          System.out.println(this.asidjoiqwd);                                                                                                                                                                                                                          ^                                                                                                                                                                                                         symbol: variable asidjoiqwd                                                                                                                                                                                                          2 errors                                                                                                                                                                                                                               sh-4.3$
Pyton_000
Ale to nie Java smile.gif to PHP smile.gif
pyro
No wiem, przecie mówie nerdsmiley.png
redeemer
Bo Java jest językiem statycznie typowanym? Tak samo PHP nie wypluje błędów dla:
  1. <?php
  2. $cos = 'cos';
pyro
Cytat(redeemer @ 17.02.2016, 13:42:02 ) *
Bo Java jest językiem statycznie typowanym? Tak samo PHP nie wypluje błędów dla:
  1. <?php
  2. $cos = 'cos';


Typowanie a operacje na niezadeklarowanych właściwościach to dwie zupełnie różne rzeczy i nie wiem co ma piernik do wiatraka wink.gif
redeemer
Statyczne typowanie wymusza wcześniejszą deklarację zmiennej z podaniem typu tej zmiennej. W dynamicznym typowaniu nie ma takiej potrzeby (bo niby jaki typ byś miał podać). Operacja przypisania nie sprawdza czy zmienna została wcześniej zadeklarowana, ale gdy interpreter chce pobrać wartość niezadeklarowanej zmiennej to rzuca E_NOTICE.
  1. class Test {
  2. public function test() {
  3. return $this->property;
  4. }
  5. }
  6.  
  7. $t = new Test();
  8. var_dump( $t->test() );
Kod
Notice: Undefined property: Test::$property in ... on line 5

pyro
Raczej chodziło mi o to, że w języku może być dynamiczne typowanie, a niedozwolone operowanie na niezadeklarowanych właściwościach
vokiel
Cytat(pyro @ 17.02.2016, 13:10:07 ) *
Raczej chodziło mi o to, że w języku może być dynamiczne typowanie, a niedozwolone operowanie na niezadeklarowanych właściwościach


Ale to de facto jest to samo. Dynamiczne typowanie wyłącza konieczność wcześniejszej deklaracji zmiennej/właściwości bo pierwsze przypisanie przejmuje tę rolę.

Jeśli operowanie na niezadeklarowanych właściwościach miałoby być niedozwolone, to musiałaby nastąpić ich wcześniejsza deklaracja - czyli wyłączenie dynamicznego typowania.
pyro
W sumie racja

// ADD

Chociaż jednak to chyba nie do końca prawda.

Przecież z definicji typowanie statyczne jest wtedy, kiedy typ zmiennej jest znany podczas kompilacji, a typowanie dynamiczne wtedy kiedy typ zmiennej jest interpretowany podczas runtime'u.

Jeżeli nawet zadeklarujesz właściwość w klasie, a nie jest możliwe przypisywanie wartości niezadeklarowanym właściwościom, to wcale nie sprawia, że typowanie jest mniej dynamiczne. Dalej zgodnie z definicją jej typ jest interpretowany podczas runtime'u. Zajrzałem jeszcze do Wikipedii i StackOverflow i zgodnie z tym co pisałem wyżej nie chodzi tutaj o sam fakt deklaracji lub niedeklaracji zmiennej / właściwości, tylko o type-safety, więcej tak jak mówiłem wcześniej zezwolenie na operacjach na niezadeklarowanych właściwościach to jednak oddzielna sprawa
mrc
@pyro, to się nazywa chyba silne typowanie
pyro
Nie, silne typowanie to niemożność użycia zmiennej danego typu w kontekście innego typu. To jeszcze zupełnie oddzielna kwestia.

Przykład języka dynamicznie ORAZ silnie typowanego: Python

// ADD

Na potwierdzenie słów:

http://stackoverflow.com/questions/1188960...-dynamic-typing

// ADD

Cytat
Static and dynamic typing, and strong and weak typing, are two totally different concepts, which, unfortunately, are very often confused.


Źródło: http://www.sitepoint.com/typing-versus-dynamic-typing/
vokiel
W sumie, to w PHP mogłoby to mieć sens, jednak raczej tylko dla klas, bo w przypadku zwykłych zmiennych lokalnych byłoby to mocno ograniczające skryptowy charakter języka.

  1. class A
  2. {
  3. protected $b;
  4.  
  5. public function testC()
  6. {
  7. $this->b = 'ok';
  8. $this->c = 'some exception thrown';
  9. }
  10. }
  11.  
  12. $a = new A();
  13. $a->testC(); // Exception


Ale już w skryptach to IMHO nie ma sensu
  1. $cos; // jakis var $cos żeby było wiadomo, że to deklaracja?
  2. $cos = 'ok';
  3. $cosInnego = 'nie ok';
pyro
@vokiel, no, zrozumieliśmy się wink.gif

// EDIT

Warto dodać, że dla nieistniejących właściwości / metod są magiczne metody, ale jak ich używasz to wtedy to robisz przynajmniej świadomie i wiesz w jaki sposób je obrabiasz
redeemer
To by było dopiero bez sensu, że "tu tak, a tam inaczej". Jak tak bardzo chcecie się obronić przed tym, to proponuję użyć metody magicznej __set i za każdym razem sprawdzać czy jest taka własność obiektu :-)

  1. class Test {
  2. protected $a;
  3.  
  4. public function __set($name, $value) {
  5. if (!property_exists(get_class($this), $name)) {
  6. throw new Exception("ERR");
  7. }
  8.  
  9. $this->$name = $value;
  10. }
  11.  
  12. public function xyz() {
  13. $this->b = 'exception';
  14. }
  15. }
  16.  
  17. $t = new Test();
  18.  
  19. $t->a = 'ok';
  20. $t->b = 'exception';
  21. $t->xyz(); // exception
pyro
Co to znaczy:

Cytat(redeemer @ 17.02.2016, 20:10:41 ) *
"tu tak, a tam inaczej".


Gdzie by miało być to "inaczej" ?

Nie widzisz różnicy pomiędzy zmiennymi, a właściwościami klasy? To jak działają i są obsługiwane właściwości klasy to jedno, a to jak są deklarowane zwykłe zmienne to drugie?
com
pyro i reszta taki wywód robicie na ten temat, a każdy zapomniał z was poco wgl jest wymagane deklarowanie właściwości w php, tu chodzi o ich zasięg.

Twój przykład daje możliwość przypisania ale właściwość ta z automaty staje się publiczna, a że public można pomijać w php to i samą deklarację można wink.gif

http://ideone.com/1d5x6j

Przykład, celowo skasowałem public przy metodzie biggrin.gif
pyro
Cytat(com @ 17.02.2016, 20:34:15 ) *
pyro i reszta taki wywód robicie na ten temat, a każdy zapomniał z was poco wgl jest wymagane deklarowanie właściwości w php, tu chodzi o ich zasięg.

Twój przykład daje możliwość przypisania ale właściwość ta z automaty staje się publiczna, a że public można pomijać w php to i samą deklarację można wink.gif

http://ideone.com/1d5x6j

Przykład, celowo skasowałem public przy metodzie biggrin.gif


@com, tu nie chodzi o widoczność takich właściwości, bo to że są one domyślnie publiczne nie wiem czy ktokolwiek miał jakieś wątpliwości. Tu chodzi o szczelność oprogramowania. Wyobraź sobie np. taką sytuację:

  1. class Person {
  2.  
  3. private $name;
  4.  
  5. public function __construct($name) {
  6. $this->nme = $name;
  7. }
  8.  
  9. public function getName() {
  10. return $this->name;
  11. }
  12.  
  13. }


I teraz szukaj przyczyny błędu w kodzie tego typu, ale bardziej złożonym. Jak byś dostał błąd, to byś od razu wiedział co jest nie tak.

Pomijam już kwestie typu podpowiadania przez IDE, etc... (EDIT: zresztą mój IDE w przeciwieństwie do PHP traktuje taki kod ostrzeżeniem i prawidłowo wink.gif )

Zresztą temat zdaje się rozwinął ze względu na to, że ktoś napisał, że to przez dynamiczne typowanie PHP, co okazało się nie do końca prawdą ze względu na w/w opis.
com
@up, owszem to IDE nie przepuści, zresztą getery setery większość można wyklikać, ale php się tego nie czepia własnie ze względu na to, że ktoś kiedyś założył iż pójdą na rękę programista i public można po dziś dzień pomijać, choć tego się nie robi ze względu na większa czytelność smile.gif Twój przykład jest dobrym przykładem tego iż te założenie było złe, ale nikt sie teraz nad tym nie zastanawia bo mało kto tego używa smile.gif

Taki błąd może się zdarzyć jak ktoś klepie w notatniku, czyli w miarę rzadko biggrin.gif Ale faktem jest że PHP ma różne takie kwiatki wink.gif

http://stackoverflow.com/questions/8163877...rk-in-php-5-3-x biggrin.gif

http://ideone.com/FAIsVR Jeszcze lepiej biggrin.gif
redeemer
Cytat(pyro @ 17.02.2016, 21:01:40 ) *
...
  1. class Person {
  2.  
  3. private $name;
  4.  
  5. public function __construct($name) {
  6. $this->nme = $name;
  7. }
  8.  
  9. public function getName() {
  10. return $this->name;
  11. }
  12.  
  13. }


I teraz szukaj przyczyny błędu w kodzie tego typu, ale bardziej złożonym. Jak byś dostał błąd, to byś od razu wiedział co jest nie tak.
...

Sytuacja analogiczna z kodem nieobiektowym:
  1. $name = 'xxx';
  2.  
  3. if (costam()) {
  4. $nme = 'yyy';
  5. }
  6.  
  7. echo $name;
Skoro tam powinien rzucać błąd, to tu też?

Ja nie twierdzę, że to jest super i tak powinno być, ale dla mnie to logiczne, że konsekwentność jest zachowana.

Powoli PHP wprowadza mechanizmy takie "scalar type declarations" (PHP7), więc wszystko zmierza do większej kontroli. Może za parę będziemy musieli deklarować wszystko w PHP? Kto wie :-)
com
redeemer akurat w tym wypadku to absurd, a tam faktycznie by się przydało, bo jak to potem kontrolować jak przez błąd programisty wypuścisz sobie jakiś public na świat, z danymi np chronionymi itp. a w Twoim przypadku kto mi broni zrobić zmienna $name = 'xxx'; oraz w warunku $nme = 'yyy';

co do "scalar type declarations" nie miał wyjścia jak mu pod nosem wyrósł hack wink.gif
pyro
@redeemer, jak wyżej.

Nie wiem czemu próbujesz sprowadzić zmienne i właściwości do bycia tym samym. Pomimo, że obu przypisujesz wartości są to dwie różne rzeczy. Dlaczego właściwościom mogę ustawić widoczność public/protected/private, a zmiennym nie? No właśnie, bo to dwie różne rzeczy.
redeemer
IIRC z punktu widzenia PHP właściwość to zmienna (+zend_property_info(?)), ale głowy nie dam, a w kod mi się nie chce teraz patrzeć :-)
pyro
To może powiem inaczej, odpowiadając na przykład który podałeś

Cytat(redeemer @ 17.02.2016, 21:28:27 ) *
Sytuacja analogiczna z kodem nieobiektowym:
  1. $name = 'xxx';
  2.  
  3. if (costam()) {
  4. $nme = 'yyy';
  5. }
  6.  
  7. echo $name;


Nie jest to analogiczny przykład, bo w tym przypadku interpreter nie ma możliwości przewidzieć, czy deklaracja zmiennej $nme to wynik błędu czy celowego działania, a w tym przykładzie z klasą, który ja podałem jest taka możliwość - brak zadeklarowania zmiennej, której przypisujesz wartość byłaby przyczyną powstania błędu.

Zresztą jak napisałem wyżej nawet IDE wtedy pluje ostrzeżeniem, co sprawia że taka funkcjonalność nawet już tak jakby jest, tylko niestety jedynie od strony IDE wink.gif (w Twoim przykładzie nie pluje ostrzeżeniem, bo nie ma powodu) . Dość jednoznacznie to wskazuje, że taka funkcjonalność byłaby nie kosmicznym wymysłem, a sensowną implementacją języka.
redeemer
Zgoda, analogia nietrafiona.

Cytat(pyro @ 17.02.2016, 22:00:15 ) *
... (w Twoim przykładzie nie pluje ostrzeżeniem, bo nie ma powodu) ...
A nie powinno wypluć "unused variable"? :-)

Ps. Mój poprzedni przykład z __set był na wyrost bo za manualem "__set() is run when writing data to inaccessible properties".

Wystarczy więc:
  1. ...
  2. public function __set($name, $value) {
  3. throw new Exception("ERR");
  4. }
  5. ...
pyro
No tak, ale musiałbyś to robić ręcznie za każdym razem, a sęk w tym, żeby język był szczelny samoistnie wink.gif
com
oj wyczuwam posypało by się masę kodów biggrin.gif przez moment to działało według stack w 5.3 biggrin.gif

ale to chyba nie prawda bo nie udało mi się odtworzyć biggrin.gif
solificati
Cytat(redeemer @ 17.02.2016, 21:28:27 ) *
Może za parę będziemy musieli deklarować wszystko w PHP? Kto wie :-)

W wielu silnie i statycznie typowanych językach nie trzeba deklarować większości typów, także może wezmą przykład z tych lepszych rozwiązań.
Fred1485
Jak się nazywała technika, w której dajmy na to obrazki mające float left czy display inline-block ustawiały się ładnie w rzędach, nawet jeśli jeden obrazek miał większą wysokość to inne nie były przesuwane do nowego wiersza tylko ładnie "wskakiwały" na wolne miejsce? Widziałem kiedyś nazwę tego, tutoriale ale nie mogę skojarzyć.
Comandeer
Masonry? http://isotope.metafizzy.co/layout-modes/masonry.html
Fred1485
Dokładnie, dzięki wielkie.
starach
  1. $keys = new \stdClass();
  2. $keys->one = "copper";
  3. $keys->two = "silver";
  4. $keys->three = "gold";
  5.  
  6. foreach($keys as $key) {}


Zastanawiam się tylko po co taką konstrukcję stosować i czy istnienie tej funkcji było zamierzone czy przypadkowe.
Comandeer
Co poniektórzy puryści na pewno by się na Twój kod oburzyli, zauważając, że istnieje ArrayObject nerdsmiley.png
ZenekN
Od kilku dni analizuję cały silnik www.quikr.com, i jestem pełen podziwu dla tego projektu jest tam tak dużo rozwiązań że nie ogarniam wink.gif
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.