php/doc-ru

typo: array

aleksandr-shevchenko opened this issue · 0 comments

https://www.php.net/manual/ru/language.types.array.php

    array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
    )

-->

    array(
        key  => value,
        key2 => value2,
        key3 => value3,
        ...
    )

    1.5  => 'c', // значение "b" перезапишет значение "c"
-->
    1.5  => 'c', // значение "c" перезапишет значение "b"



    true => 'g', // значение "c" перезапишет значение "g"
-->
    true => 'g', // значение "g" перезапишет значение "c"



    null => 'j', // значение "i" перезапишет значение "j"
-->
    null => 'j', // значение "j" перезапишет значение "i"


    2 => 'l', // значение "k" перезапишет значение "1"
-->
    2 => 'l', // значение "l" перезапишет значение "k"

Как уже говорилось выше, если ключ не был указан, то будет взят максимальный из существующих целочисленных (int) индексов, и новым ключом будет это максимальное значение (в крайнем случае 0) плюс 1. Если целочисленных (int) индексов ещё нет, то ключом будет 0 (ноль).
-->
тут в одном месте 0, далее как перечеркнутый ноль


Замечание:
Массив, разыменовывающий скалярное значение, которое не является строкой (string), отдаст null. До PHP 7.4.0 не выдаётся сообщение об ошибке. Начиная с PHP 7.4.0, выдаётся ошибка E_NOTICE; с PHP 8.0.0 выдаётся ошибка E_WARNING.

-->

Вроде написано по-русски, но ничего не понятно.

Может стоит сделать приписку (от переводчиков) что это означает следующее:

  • доступ к элементу строки с несуществующим индексом вернет пустую строку

  • а доступ к несуществующему элементу array вернет NULL

<?php
$str = 'abcd';
$c = $str[1];
echo "\$c = '" . $c . "'", PHP_EOL;
$c = $str[22];
var_dump($c);


$a = array(1, 2, 3);
$b = $a['abc'];
var_dump($b);
?>

напечатает

$c = 'b'
PHP Warning:  Uninitialized string offset 22 in php_type_array_3.php on line 6
PHP Stack trace:
PHP   1. {main}() php_type_array_3.php:0
PHP Warning:  Undefined array key "abc" in php_type_array_3.php on line 11
PHP Stack trace:
PHP   1. {main}() php_type_array_3.php:0

Warning: Uninitialized string offset 22 in php_type_array_3.php on line 6

Call Stack:
    0.0389     390232   1. {main}() php_type_array_3.php:0

php_type_array_3.php:7:
string(0) ""

Warning: Undefined array key "abc" in php_type_array_3.php on line 11

Call Stack:
    0.0389     390232   1. {main}() php_type_array_3.php:0

php_type_array_3.php:12:
NULL