PHP.mk документација

Нови одлики

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

migration72.new-features.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека migration72.new-features.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Нови одлики

Референца за `migration72.new-features.php` со подобрена типографија и навигација.

migration72.new-features.php

Нови одлики

Нов тип на објект

Нов тип, object, е воведен што може да се користи за (контраваријантно) параметарско пишување и (коваријантно) враќање на било кои објекти.

<?php

function test(object $obj) : object
{
return new
SplQueue();
}

test(new stdClass());

Вчитување на екстензија по име

Споделените екстензии веќе не бараат нивната екстензија на датотеката (.so за Unix или .dll за Windows) да биде специфицирано. Ова е овозможено во датотеката php.ini, како и во dl() function.

Препишување на апстрактни методи

Апстрактните методи сега можат да се препишат кога една апстрактна класа наследува друга апстрактна класа.

<?php

abstract class A
{
abstract function
test(string $s);
}
abstract class
B extends A
{
// overridden - still maintaining contravariance for parameters and covariance for return
abstract function test($s) : int;
}

Натриум сега е основна екстензија

Современата Sodium криптографска библиотека сега стана основна екстензија во PHP.

За целосен референтен приказ на функциите, видете го Натриум chapter.

Хеширање на лозинка со Argon2

Argon2 е додаден во API за хеширање на лозинки, каде што се изложени следните константи:

Проширени типови на низи за PDO

Типот на низа на PDO е проширен за да ја поддржи националната типска карактер кога се емулираат подготовки. Ова е направено со следните константи:

Овие константи се користат со бинарни OR' нив со PDO::PARAM_STR:

<?php

$db
->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL);

Дополнителни информации за отстранување грешки при емулирани подготовки за PDO

На Ова ќе ги исфрли само параметрите во изјавата во моментот на исфрлање. Дополнителните параметри не се складираат во изјавата и не се прикажуваат. методот е ажуриран за да го вклучи SQL што се испраќа до базата на податоци, каде што ќе се прикаже целосната, суровата команда (вклучувајќи ги заменетите загради со нивните поврзани вредности). Ова е додадено за да помогне во отстранувањето грешки при емулирани подготовки (и затоа ќе биде достапно само кога се вклучени емулирани подготовки).

Поддршка за проширени операции во LDAP

Поддршката за EXOP е додадена во LDAP екстензијата. Ова е направено со изложување на следните функции и константи:

Дополнувања на информации за адреса на Приклучоци extension

Екстензијата за сокети сега има можност да бара информации за адреса, како и да се поврзе со неа, да се врзе за неа и да ја објасни. За ова се додадени следните четири функции:

Проширување на типот на параметрите

Типовите на параметрите од препишаните методи и од имплементациите на интерфејсот сега може да се изостават. Ова е сè уште во согласност со LSP, бидејќи типовите на параметрите се контраваријантни.

<?php

interface A
{
public function
Test(array $input);
}

class
B implements A
{
public function
Test($input){} // type omitted for $input
}

Дозволи запирка на крајот за групирани простори на имиња

Запирка на крајот сега може да се додаде во синтаксијата group-use воведена во PHP 7.0.

<?php

use Foo\Bar\{
Foo,
Bar,
Baz,
};

proc_nice() поддршка на Windows

На proc_nice() функцијата сега е поддржана на Windows.

pack() and unpack() поддршка за ендијан

На pack() and unpack() функциите сега поддржуваат float и double и во little и во big endian.

Подобрувања на EXIF extension

Екстензијата EXIF е ажурирана за да поддржува многу поголем опсег на формати. Ова значи дека нивните специфични ознаки за формати сега се правилно преведени при парсирање слики со exif_read_data() функција. Сега се поддржани следните нови формати:

  • за Windows) да биде специфициран. Ова е овозможено во php.ini датотеката, како и во
  • DJI
  • Samsung
  • Panasonic
  • Sony
  • Pentax
  • Sigma/Foveon
  • AGFA
  • Minolta
  • Kyocera
  • Ricoh

EXIF функциите exif_read_data() and exif_thumbnail() сега поддржуваат поминување на стримови како прв аргумент.

Нови функции во PCRE

  • На J модификаторот за поставување PCRE_DUPNAMES е додаден.

SQLite3 овозможува запишување BLOBs

Epson сега овозможува отворање BLOB полиња во режим на запишување; претходно беше поддржан само режим на читање.

SQLite3::openBlob() Проѕирни враќања за откажување на апликации

Поддршка за Oracle Database Transparent Application Failover (TAF) враќања е додадено. TAF им овозможува на PHP OCI8 апликациите автоматски да се поврзат со претходно конфигурирана база на податоци кога врската е прекината. Новата поддршка за TAF враќања им овозможува на PHP апликациите да го следат и контролираат повторното поврзување за време на откажување.

Подобрувања на ZIP extension

Додадена е поддршка за читање и запишување за шифрирани архиви (потребно е libzip 1.2.0).

На ZipArchive класата сега ја имплементира luk4z_7 at hotmail dot com interface.

На zip:// стримот сега прифаќа 'password' опција за контекст.

Белешки од корисници 2 забелешки

jon dot phpnetdonotspam at langevin dot me
пред 5 години
Note: "omitted" = "removed":
<?php
declare(strict_types=1);

interface ITest
{
    public function run(array $input);
}

class Test implements ITest
{
    public function run($input) {
       return $input;
   }
} 

echo (new Test())->run('foo'); // display foo, no error
?>
info на ensostudio точка ru
пред 5 години
Note: you cant change parameter type for abstract method defined in interface.
<?php
abstract class AbstractAssocArray imlements ArrayAccess
{
    abstract public function offsetSet($offset, $value): void;
    ...
}
abstract class AbstractAssocArray2 extends AbstractAssocArray
{
    abstract public function offsetSet(string $offset, $value): void;
}
class AssocArray extends AbstractAssocArray2
{
    public function offsetSet(string $offset, $value): void
    {
         $this->{$offset} = $value;
    }
}
?>
It's throw fatal error: Declaration of AbstractAssocArray::offsetSet(string $offset, $value): void must be compatible with AbstractAssocArrayAccess::offsetSet($offset, $value).
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.