Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady panujące na forum News

1. Posty w tym forum są poddawane moderacji więc nie dodawaj ich kilka razy.
2. Akceptujemy tylko wartościowe wiadomości o php lub pochodnych
3. Publikacja newsa na wortalu po moderacji oscyluje w granicach 30min
4. Wstawiane grafiki powinny mieć maksymalną szerokość 357px

Zapraszamy do uzupełniania wortalu o ciekawe informacje :)

> PHP 7.0.0 Alpha 1 Released
com
post 12.06.2015, 21:47:39
Post #1





Grupa: Zarejestrowani
Postów: 3 033
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


Jakiś czas temu pojawiła się maszyna do vagranta z zainstalowanym jednym z pierwszych wydań php7, jednakże dziś światło dzienne ujrzała pierwsza oficjalna Alpha.

Jeśli kogoś interesuje lista zmian to można znaleźć ją tutaj: https://github.com/php/php-src/blob/php-7.0.0alpha1/NEWS oraz https://github.com/php/php-src/blob/php-7.0...lpha1/UPGRADING

Można go oczywiście pobrać i przetestować już dziś, linki do downloadu: https://downloads.php.net/~ab/ oraz wersja dla Windows: http://windows.php.net/qa/, tam jednak żeby zaczęło działać trzeba mieć apache kompilowane VC14, czyli najnowszą jego wersje najlepiej. Oraz pobrać brakujący dll ponieważ nie został on umieszczony w paczce php: http://windows.php.net/downloads/snaps/ostc/69801/vc14/


Co nowego, skrócona lista:

  • Zwiększona wydajność: PHP 7 jest nawet dwa razy szybciej niż PHP 5.6
  • Spójne wsparcie 64-bit
  • Wiele fatal errors stało się teraz wyjątki
  • Usunięcie starych i nieobsługiwanych SAPI i rozszerzeń
  • Operator null coalescing (? ?)
  • Combined comparison Operator (<=>)
  • Zwracanie zadeklarowanych typów
  • Skalarne deklaracje typów
  • Klasy anonimowe


Wersja ta na razie jest tylko testowa i nie powinna być używana do celów produkcyjnych.

http://www.dmiller.io/blog/2015/4/26/compa...ck-type-systems
Kilka przykładów:

Zwracanie zadeklarowanych typów i skalarne deklaracje typów
  1. <?php
  2.  
  3. function add(int $a, int $b): float {
  4. return $a + $b;
  5. }
  6.  
  7. var_dump(add(1,2)); //float(3)
  8.  


  1. <?php
  2.  
  3. function add(int $a, int $b): int {
  4. return (string) $a + $b;
  5. }
  6.  
  7. var_dump(add(1,2)); //int(3)
  8.  

  1. <?php
  2.  
  3. function add(int $a, int $b): string {
  4. return (string) $a + $b;
  5. }
  6.  
  7. var_dump(add(1,2)); //string(1) "3"
  8.  


Ale:
  1. <?php
  2.  
  3. function add(int $a, int $b): array {
  4. return (array) $a + $b;
  5. }
  6.  
  7. var_dump(add(1,2)); // Fatal error: Uncaught EngineException: Unsupported operand types


Podobnie jeśli podamy zły typ php rozpozna, że coś jest nie tak i odpowiednio nas o tym poinformuje

Klasy anonimowe
  1. $i = 1;
  2. var_dump(new class($i) {
  3. public function __construct($i) {
  4. $this->i = $i;
  5. }
  6. }); //object(class@anonymous)#1 (1) { ["i"]=> int(1) }

null coalescing operator (? ?)
  1. $x = NULL;
  2. $y = NULL;
  3. $z = 3;
  4. var_dump($x questionmark.gif $y questionmark.gif $z); //int(3)
  5.  
  6. var_dump(2 questionmark.gif 3 ? 4 : 5); //int(4)
  7.  
  8. var_dump(0 || 2 questionmark.gif 3 ? 4 : 5); //int(4)

Combined comparison Operator (<=>)
  1. echo 1 <=> 1; // 0
  2. echo 1 <=> 2; // -1
  3. echo 2 <=> 1; // 1
  4.  
  5. echo [] <=> []; // 0
  6. echo [1, 2, 3] <=> [1, 2, 3]; // 0
  7. echo [1, 2, 3] <=> []; // wdg dokumentacji oczekiwane 1 a otrzymujemy 3
  8. echo [1, 2, 3] <=> [1, 2, 1]; // 1
  9. echo [1, 2, 3] <=> [1, 2, 4]; // -1
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adamjackson
post 10.05.2019, 07:30:10
Post #2





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 10.05.2019

Ostrzeżenie: (0%)
-----


Cytat(com @ 12.06.2015, 22:47:39 ) *
Jakiś czas temu pojawiła się maszyna do vagranta z zainstalowanym jednym z pierwszych wydań php7, jednakże dziś światło dzienne ujrzała pierwsza oficjalna Alpha.

Jeśli kogoś interesuje lista zmian to można znaleźć ją tutaj: https://github.com/php/php-src/blob/php-7.0.0alpha1/NEWS oraz https://github.com/php/php-src/blob/php-7.0...lpha1/UPGRADING
Best Solution for Assignment Writing Problems in Australia
Można go oczywiście pobrać i przetestować już dziś, linki do downloadu: https://downloads.php.net/~ab/ oraz wersja dla Windows: http://windows.php.net/qa/, tam jednak żeby zaczęło działać trzeba mieć apache kompilowane VC14, czyli najnowszą jego wersje najlepiej. Oraz pobrać brakujący dll ponieważ nie został on umieszczony w paczce php: http://windows.php.net/downloads/snaps/ostc/69801/vc14/


Co nowego, skrócona lista:

  • Zwiększona wydajność: PHP 7 jest nawet dwa razy szybciej niż PHP 5.6
  • Spójne wsparcie 64-bit
  • Wiele fatal errors stało się teraz wyjątki
  • Usunięcie starych i nieobsługiwanych SAPI i rozszerzeń
  • Operator null coalescing (? ?)
  • Combined comparison Operator (<=>)
  • Zwracanie zadeklarowanych typów
  • Skalarne deklaracje typów
  • Klasy anonimowe


Wersja ta na razie jest tylko testowa i nie powinna być używana do celów produkcyjnych.

http://www.dmiller.io/blog/2015/4/26/compa...ck-type-systems
Kilka przykładów:

Zwracanie zadeklarowanych typów i skalarne deklaracje typów
  1. <?php
  2.  
  3. function add(int $a, int $b): float {
  4. return $a + $b;
  5. }
  6.  
  7. var_dump(add(1,2)); //float(3)
  8.  


  1. <?php
  2.  
  3. function add(int $a, int $b): int {
  4. return (string) $a + $b;
  5. }
  6.  
  7. var_dump(add(1,2)); //int(3)
  8.  

  1. <?php
  2.  
  3. function add(int $a, int $b): string {
  4. return (string) $a + $b;
  5. }
  6.  
  7. var_dump(add(1,2)); //string(1) "3"
  8.  


Ale:
  1. <?php
  2.  
  3. function add(int $a, int $b): array {
  4. return (array) $a + $b;
  5. }
  6.  
  7. var_dump(add(1,2)); // Fatal error: Uncaught EngineException: Unsupported operand types


Podobnie jeśli podamy zły typ php rozpozna, że coś jest nie tak i odpowiednio nas o tym poinformuje

Klasy anonimowe
  1. $i = 1;
  2. var_dump(new class($i) {
  3. public function __construct($i) {
  4. $this->i = $i;
  5. }
  6. }); //object(class@anonymous)#1 (1) { ["i"]=> int(1) }

null coalescing operator (? ?)
  1. $x = NULL;
  2. $y = NULL;
  3. $z = 3;
  4. var_dump($x questionmark.gif $y questionmark.gif $z); //int(3)
  5.  
  6. var_dump(2 questionmark.gif 3 ? 4 : 5); //int(4)
  7.  
  8. var_dump(0 || 2 questionmark.gif 3 ? 4 : 5); //int(4)

Combined comparison Operator (<=>)
  1. echo 1 <=> 1; // 0
  2. echo 1 <=> 2; // -1
  3. echo 2 <=> 1; // 1
  4.  
  5. echo [] <=> []; // 0
  6. echo [1, 2, 3] <=> [1, 2, 3]; // 0
  7. echo [1, 2, 3] <=> []; // wdg dokumentacji oczekiwane 1 a otrzymujemy 3
  8. echo [1, 2, 3] <=> [1, 2, 1]; // 1
  9. echo [1, 2, 3] <=> [1, 2, 4]; // -1

Co do samej "siódemki" jestem bardzo pozytywnie nastawiony od czasu pierwszych testów Dmitriego (nie jestem pewien, czy tak zapisuje się jego nick) na buildzie oznaczonym jako PHPNG. Jest ona czymś, co może rozbudzić rynek PHP i znacznie pomóc nowym projektom, aczkolwiek nie widzę zbytniej rewolucji, która jest niesamowicie potrzebna. Uważam, że ta wersja pozwoli zastopować spadek udziału PHP w rynku i odchodzenie programistów, ale by wskrzesić sam język i podbudować jego renomę to za mało. Na sam koniec dodam, że cieszy mnie "pobudka" rozwoju tego języka, która po udanej wersji PHP 5.4 była śmiechu warta i mam nadzieję, że "siódemka" to początek dobrej passy, która zowocuje w dobracowanej, przepisanej, odważnej "ósemce".
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 19:56