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 032
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

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 14:17