Использовать массив для этой задачи. Особенно, если вы не знаете, сколько варов вам нужно.
$data = '-1--52--18-';
$vars = array_filter(explode('-', $data));
После того, как у вас есть все в массиве, вы можете использовать циклы для перебора значений или count / isset для проверки, существует ли значение.
foreach ($vars as $var) {
echo $var . "\n";
}
или
if (isset($var[0])) {
// do sth. with var[0] = 1
}
Если они вам нужны от var0 до var3, вы можете использовать list
.
list($var0, $var1, $var2) = array_filter(explode('-', $data));
Или если вы хотите это динамически по какой-либо причине ...
foreach ($vars as $index => $var) {
${"var" . $index} = $var;
}
echo $var0;