преобразование массива в строку с переполнением в php - PullRequest
0 голосов
/ 30 января 2012

У меня есть простой код:

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
$test = array();
$test = 'demo';
$test['55test'] = 'yay';
var_dump($test);

возвращает

 string(56) "demo                                                   y"

Я знаю, что это неправильный способ преобразования строки в массив, но, похоже, я пропустил документацию PHP по этому делу. Может ли кто-нибудь просветить меня по этому поводу? Спасибо

P.S. Проверено в PHP 5.3.6-13

Ответы [ 2 ]

1 голос
/ 30 января 2012

Если вы выполните это назначение:

$test['55'.'test'] = 'yay';

Произойдет следующее:

  • Содержимое [] преобразуется в int, а (int)('55test') дает 55.
  • Позиции от 3 до 54 не установлены.Вы присваиваете позицию 55, поэтому все они устанавливаются на пробелы.
  • $test[55] = 'yay' приводит к $test[55] === 'y', поскольку только один символ 'yay' может быть назначен одной позиции в строке, апервый выбран.

Обратите внимание, что преобразование массива в строку отсутствует.Просто к string можно получить доступ как array.

(это было написано до обновления ответа)

1 голос
/ 30 января 2012

Доступ к строке и ее модификация по символу

Доступ к символам в строках и их изменение можно получить, указав смещение нуля нужного символа после строки с использованием квадратных скобок массива, как в $ str [42].Думайте о строке как о массиве символов для этой цели.Функции substr () и substr_replace () можно использовать, когда вы хотите извлечь или заменить более 1 символа.

Проверьте руководство по для строк

...