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 for Windows) to be specified. This is enabled in the php.ini file, as well as in the 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() функција. Сега се поддржани следните нови формати:

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

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

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

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

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

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

Oracle OCI8 Проѕирни враќања за откажување на апликации

Поддршка за 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
пред 4 години
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.