Решение состоит в том, чтобы разделить вашу строку кода на несколько, чтобы гарантировать, что вы никогда не назначите несуществующие значения переменным, что вы и делаете, когда explode
возвращает только одну часть URL.
Для этого использование list
кажется правильным решением, так как со списком вы должны знать, сколько элементов вернет выражение справа от =
...
И, в этой ситуации, вы не знаете, сколько элементов explode
вернет .
Например, что-то вроде этого может быть в порядке:
$parts = explode('/', $url);
if (isset($parts[0])) {
$dir = $parts[0];
if (isset($parts[1])) {
$act = $parts[1];
}
}
Конечно, вам решать ситуацию, в которой $dir
и / или $act
не установлены, позже в вашем сценарии.
Другое решение состоит в том, чтобы проверить, сколько элементов взорвется, вернет (считая число, например, /
) ; но вам все равно придется иметь дело как минимум с двумя делами.