Вот онлайн трюк я не видел упомянутые в приведенных выше ответов:
$val = strval(@$arr["notfound"]); // will not generate errors and
// defaults to an empty string
Это супер удобно для загрузки $_GET
параметра, чтобы держать вещи коротким и читаемым. Бонус, вы можете заменить strval()
на trim()
... или с intval()
, если вы принимаете только целые числа.
По умолчанию для intval
будет 0
при отсутствии или нечисловом значении. Значение по умолчанию для strval
равно ""
, если пусто, ноль или ложь.
$val_str = strval(@$_GET['q']);
$val_int = intval(@$_GET['offset']);
See DEMO
Теперь для массива, вам все равно нужно перебрать каждое значение и установите его.Но это очень читаемый, IMO:
$arr = Array (1, 4, "0", "V", null, false, true, 'true', "N");
foreach ($arr as $key=>$value) {
$arr[$key] = strval($value);
}
echo ("['".implode("','", $arr)."']");
Вот результат:
['1','4','0','V','','','1','true','N']
Интересно, что true
становится "1", но 'true'
остается строку и false
становится и пустой строка ""
.
Теперь те же данные, используя $arr[$key] = intval($value);
производит этот результат:
['1','4','0','0','0','0','1','0','0']
'0 == NULL' является значение TRUE, также. Должна использовать идентификатор ('==='). –