![]() ![]() |
Post
#11261
|
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%)
|
Ja? Nic nie zrobiłem, napisałem o dobrych praktykach i się stało… (IMG:style_emoticons/default/tongue.gif)
|
|
|
|
Post
#11262
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
niektórzy maja swoje racje i im nie przegadasz (IMG:style_emoticons/default/tongue.gif)
|
|
|
|
Post
#11263
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
O widzisz (IMG:style_emoticons/default/smile.gif) To się nazywa popularność (IMG:style_emoticons/default/haha.gif)
|
|
|
|
Post
#11264
|
|
|
Grupa: Zarejestrowani Postów: 425 Pomógł: 6 Dołączył: 7.08.2012 Ostrzeżenie: (0%)
|
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> (IMG:style_emoticons/default/smile.gif) ?
|
|
|
|
Post
#11265
|
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%)
|
|
|
|
|
Post
#11266
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
Właśnie się dowiedziałem, że takie coś nie sypie błędami, a nawet pokazuje wartość:
Tyle lat w nieświadomości... Co więcej:
|
|
|
|
Post
#11267
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
A czemu miałyby sypać (IMG:style_emoticons/default/wink.gif)
|
|
|
|
Post
#11268
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
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$
Ten post edytował pyro 17.02.2016, 12:31:53 |
|
|
|
Post
#11269
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Ale to nie Java (IMG:style_emoticons/default/smile.gif) to PHP (IMG:style_emoticons/default/smile.gif)
|
|
|
|
Post
#11270
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
No wiem, przecie mówie (IMG:style_emoticons/default/nerdsmiley.png)
|
|
|
|
Post
#11271
|
|
|
Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%)
|
|
|
|
|
Post
#11272
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
Bo Java jest językiem statycznie typowanym? Tak samo PHP nie wypluje błędów dla:
Typowanie a operacje na niezadeklarowanych właściwościach to dwie zupełnie różne rzeczy i nie wiem co ma piernik do wiatraka (IMG:style_emoticons/default/wink.gif) Ten post edytował pyro 17.02.2016, 12:51:33 |
|
|
|
Post
#11273
|
|
|
Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%)
|
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.
Kod Notice: Undefined property: Test::$property in ... on line 5 |
|
|
|
Post
#11274
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
Raczej chodziło mi o to, że w języku może być dynamiczne typowanie, a niedozwolone operowanie na niezadeklarowanych właściwościach
|
|
|
|
Post
#11275
|
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%)
|
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. |
|
|
|
Post
#11276
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
// 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 Ten post edytował pyro 17.02.2016, 17:51:09 |
|
|
|
Post
#11277
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 27 Dołączył: 22.09.2008 Skąd: Tarnów Ostrzeżenie: (0%)
|
@pyro, to się nazywa chyba silne typowanie
|
|
|
|
Post
#11278
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
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/ |
|
|
|
Post
#11279
|
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%)
|
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.
Ale już w skryptach to IMHO nie ma sensu
|
|
|
|
Post
#11280
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
@vokiel, no, zrozumieliśmy się (IMG:style_emoticons/default/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 Ten post edytował pyro 17.02.2016, 19:57:13 |
|
|
|
![]() ![]() |
|
Aktualny czas: 14.06.2026 - 04:36 |