PHP использует аппликативную стратегию оценки порядка , поэтому getBoolean(1)
будет оцениваться до массива, назначенного $arrayList
.
Однако, у вас есть ошибка в вашей функции getBoolean
. Вам нужно return
значение логического типа, а не строковая версия логического значения.
Код: ( https://3v4l.org/AOdn3B )
$arrayList = [ [ 'uid' => '1234', 'nilai' => getBoolean (1) ] ];
function getBoolean ($value) {
return (bool) $value;
}
echo json_encode ($arrayList);
Выход:
[{"uid":"1234","nilai":true}]
p.s. Лично я бы не стал писать для этого собственную функцию. Просто добавьте (bool)
непосредственно к значению вашего массива.
$arrayList = [ [ 'uid' => 1234, 'nilai' => (bool) 1 ] ];
Опять же, если у вас есть отрицательные числа или какой-то другой случай, используйте:
if ($value == 0) {
return false; // boolean, not string
} else {
return true; // boolean, not string
}
Вы могли использовать toString
метод андроида Uri
в комбинации String
базирующийся конструктор Java URI
.
android.net.Uri auri = new android.net.Uri(what ever);
java.net.URI juri = new java.net.URI(auri.toString());
Так как Строковое построение не работает, Вы попытались просто создать его Ваш сам?
android.net.URI auri = new android.net.URI(what ever);
java.net.URI juri = new java.net.URI(auri.getSchema(),
auri.getSchemaSpecificPart(),
auri.getFragment());
Вы могли бы также хотеть проверить то свое получение дважды допустимых данных из Android класс URI. Документы, как перечислено в моем другом ответе обсуждают, как он не делает в значительной степени никакой проверки ошибок. Если существует, заражают ошибку, класс просто выкладывает мусор так или иначе и не выдает исключений. Который мог очень вероятно быть, почему класс Java, который действительно делает проверку, выдает исключение.
Found the correct way to open InputStream from content URI:
InputStream fileInputStream=yourContext.getContentResolver().openInputStream(uri);
That's all!