Π”Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния

ЗамСчания ΠΈ прСдупрСТдСния ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ строками

НовыС ошибки ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ E_WARNING ΠΈ E_NOTICE Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΈ использовании Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… строк с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΌΠΈ числа (+ - * / ** % << >> | & ^) ΠΈ ΠΈΡ… эквивалСнтами с присваиваниСм. Ошибка уровня E_NOTICE выдаётся, ΠΊΠΎΠ³Π΄Π° строка начинаСтся с Ρ†ΠΈΡ„Ρ€, Π½ΠΎ Π΄Π°Π»Π΅Π΅ содСрТит Π½Π΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ символы, ΠΈ ошибка уровня E_WARNING выдаётся Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° строка Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ содСрТит Ρ†ΠΈΡ„Ρ€.

<?php
'1b' + 'Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ';

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

Notice: A non well formed numeric value encountered in %s on line %d
Warning: A non-numeric value encountered in %s on line %d

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ экранированной Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Π Π°Π½Π΅Π΅ 3-октСтная Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Π°Ρ строка ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ Π½ΠΈΠΊΠΎΠΌΡƒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сообщая. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° ошибка уровня E_WARNING.

<?php
var_dump
("\500");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ $this

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ $this считаСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² PHP, Π΅ΠΉ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ, Ρ‡Ρ‚ΠΎ Π΅Ρ‘ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² качСствС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ $this Π² качСствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ. Π’Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² глобальном пространствС ΠΈΠΌΡ‘Π½.

ГСнСрация ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² сСссий Π±Π΅Π· Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ сСссий большС Π½Π΅ Ρ…Π΅ΡˆΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²ΠΎ врСмя создания. ВмСстС с этим ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΠ· ini-Ρ„Π°ΠΉΠ»Π°:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

И Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ…:

  • session.sid_length - опрСдСляСт Π΄Π»ΠΈΠ½Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссии. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 32 символа для обСспСчСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости.
  • session.sid_bits_per_character - опрСдСляСт количСство Π±ΠΈΡ‚ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство доступных для использования Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ символов). Для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 4 Π±ΠΈΡ‚Π°.

ИзмСнСния Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ INI-Ρ„Π°ΠΉΠ»ΠΎΠ²

precision

Если установлСно Π² -1, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ использован Ρ€Π΅ΠΆΠΈΠΌ dtoa. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 14.

serialize_precision

Если установлСно Π² -1, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ использован Ρ€Π΅ΠΆΠΈΠΌ dtoa. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ -1.

gd.jpeg_ignore_warning

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для этой настройки php.ini ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° 1, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, прСдупрСТдСния libjpeg Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

opcache.enable_cli

Π’ PHP 7.1.2 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для этой настройки php.ini ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° 1 (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ), Π° Π² PHP 7.1.7 Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 (Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ)

ГСнСрация ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² сСссий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSPRNG

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ сСссий Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSPRNG.

Π‘ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСниС TypeError, Ссли допустим null

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ TypeError для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Ρ‚ΠΈΠΏΠ° arg_info прСдоставляСт Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСниС ΠΎΠ± ошибкС. Если Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ null (Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ обнуляСмый Ρ‚ΠΈΠΏ), Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² сообщСнии Π±ΡƒΠ΄Π΅Ρ‚ упомянуто "must be ... or null" ΠΈΠ»ΠΈ "must ... or be null."

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
4
Ta7To7 ΒΆ
8 years ago
Note that using Incrementing/Decrementing operators on string is legal 
<?php
$str = "";
echo ++$str; // output: 1
?>