com doc/ru: Обновлен ие до англи йской верси и: language/types/array.xml

From: Date: Wed, 24 Feb 2021 10:09:31 +0000
Subject: com doc/ru: Обновлен ие до англи йской верси и: language/types/array.xml
Groups: php.doc.ru 
Request: Send a blank email to doc-ru+get-8814@lists.php.net to get a copy of this message
Commit: f9cc32cb12c75c73b45830dd6c1eac48a5922a74 Author: Alex Erohin <alexandererohin@yandex.ru> Wed, 24 Feb 2021 11:01:48 +0300 Committer: Sergey Panteleev <sergey@php.net> Wed, 24 Feb 2021 13:09:31 +0300 Parents: 931ce865856e85742b379d87eaed3c68b12765e0 Branches: master Link: http://git.php.net/?p=doc/ru.git;a=commitdiff;h=f9cc32cb12c75c73b45830dd6c1eac48a5922a74 Log: Обновление до английской версии Closes GH-23 Closes GH-24 Обновление до английской версии Closes GH-23 Changed paths: M language/types/array..xml Diff: diff --git a/language/types/array.xml b/language/types/array.xml index 4222874fd..5b5ec4e6a 100644 --- a/language/types/array..xml +++ b/language/types/array.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- EN-Revision: 6de2e5772f11997fb9a8c0fa2406fbb2c73b3579 Maintainer: shein Status: ready --> +<!-- EN-Revision: 529359031bc69c5f635a459ae3891df4b8dc8df9 Maintainer: shein Status: ready --> <!-- Reviewed: no --> <!-- $Revision$ --> <sect1 xml:id="language..types.array"> @@ -273,6 +273,52 @@ array(4) { типа перед этим было <literal>6</literal>. </para> </example> + + <example> + <title>Расширенный пример преобразования типов и перезаписи элементов</title> + <programlisting role="php"> + <![CDATA[ +<?php +$array = array( + 1 => "a", + "1" => "b", // значение "b" перезапишет значение "a" + 1.5 => "c", // значение "c" перезапишет значение "b" + -1 => 'd', + "01" => "e", + true => "f", // значение "f" перезапишет значение "c" + false => 'g', + '' => 'h', + null => 'i', // значение "i" перезапишет значение "h" + 'j', // значению "j" назначен ключ 2, так как максимальное целочисленное значение предшествующего ключа равно 1 + 2 => 'k', // значение "k" перезапишет значение "j" +); +var_dump($array); +?> +]]> + </programlisting> + &example.outputs; + <screen> + <![CDATA[ +array(6) { + [1]=> + string(1) "f" + [-1]=> + string(1) "d" + ["01"]=> + string(1) "e" + [0]=> + string(1) "g" + [""]=> + string(1) "i" + [2]=> + string(1) "k" +} +]]> + </screen> + <para> + Этот пример включает все вариации преобразования ключей и перезаписи элементов + </para> + </example> </sect3> <sect3 xml:id="language.types.array.syntax.accessing"> @@ -796,27 +842,70 @@ $error_descriptions[8] = "Это лишь неофициальное замеч к закрытым полям класса (private) спереди будет дописано имя класса; к защищённым полям класса (protected) спереди будет добавлен символ '*'. Эти добавленные значения с обоих сторон также имеют нулевые байты. - Это может вызвать несколько неожиданное поведение: </para> <informalexample> <programlisting role="php"> <![CDATA[ <?php +class A { + private $B; + protected $C; + public $D; + function __construct() + { + $this->{1} = null; + } +} +var_export((array) new A()); +?> +]]> + </programlisting> + &example.outputs; + <screen> + <![CDATA[ +array ( + '' . "\0" . 'A' . "\0" . 'B' => NULL, + '' . "\0" . '*' . "\0" . 'C' => NULL, + 'D' => NULL, + 1 => NULL, +) +]]> + </screen> + </informalexample> + + <para> + Это может вызвать несколько неожиданное поведение: + </para> + <informalexample> + <programlisting role="php"> + <![CDATA[ +<?php class A { private $A; // Это станет '\0A\0A' } - class B extends A { private $A; // Это станет '\0B\0A' public $AA; // Это станет 'AA' } - var_dump((array) new B()); ?> ]]> </programlisting> + &example.outputs; + <screen> + <![CDATA[ +array(3) { + ["BA"]=> + NULL + ["AA"]=> + NULL + ["AA"]=> + NULL +} +]]> + </screen> </informalexample> <para>

« previous php.doc.ru (#8814) next »