truekenny
@truekenny

Yaml/php как верно распарсить?

<?
var_dump(yaml_parse('foo: [b]'));
var_dump(yaml_parse('foo: [n]'));
var_dump(yaml_parse('foo: [y]'));

array(1) {
  ["foo"]=>
  array(1) {
    [0]=>
    string(1) "b"
  }
}
array(1) {
  ["foo"]=>
  array(1) {
    [0]=>
    bool(false)
  }
}
array(1) {
  ["foo"]=>
  array(1) {
    [0]=>
    bool(true)
  }
}


Я ожидаю, что вместо false/true будет n/y. Как этого добиться?

Module Version	1.2.0
LibYAML Version	0.1.6
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 1
@kzooz
Php-developer, student, good guy
Если не менять входящий yaml - то никак. Y/N являются ключевыми символами и согласно спецификации интерпретируются как булевые. Если нужно получить символьное представление - заключайте их в кавычки:

var_dump(yaml_parse("foo: ['y']"));
array(1) {
  ["foo"]=>
  array(1) {
    [0]=>
    string(1) "y"
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
02 мая 2024, в 23:56
2000 руб./за проект
02 мая 2024, в 23:29
1500 руб./в час
02 мая 2024, в 23:16
7500 руб./за проект