Вы можете просто выполнить приведение типа следующим образом:
// note join() is just an alias for implode.
// i like the symmetry of using implode/explode
echo implode((string) $glue, explode((string) $delimiter, '1_0_1'));
Во всяком случае, похоже, что они все равно конвертировались.
Тем не менее, было бы хорошо использовать is_string()
и is_numeric()
, чтобы избежать фатальной ошибки, если, скажем, объект был передан.
if ((is_string($glue) || is_numeric($glue))
&& (is_string($delimiter) || is_numeric($delimiter))
) {
// objects didn't pass the test, safe to type-cast
echo implode((string) $glue, explode((string) $delimiter, '1_0_1'));
}
Редактировать
По предложению Райанве, вы тоже можете сделать это:
if (is_scalar($glue) && !is_bool($glue)) { // ...