Согласно заголовку вашего вопроса, если вы хотите выйти из цикла, используйте break;
и если вы хотите выйти из метода, используйте return;
выйти из цикла ex:
[ 110]выйти из метода, например:
public void someMethod() {
//your code
if (someCondition()) {
return;
}
}
Вы редактируете высокоуровневый каталог, таким образом, у пользователя PHP должен быть доступ для записи к тому каталогу.
Это, вероятно, потому что апач не является владельцем родительского каталога. При переименовании (или перемещении) файл является в основном тем же самым как созданием нового файла.
для разъяснения php может только переименовать каталоги, он имеет фактическое владение:
-rwxrwxrwx user user temp/
-rwxr-xr-x apache apache temp2/
-rw-r--r-- user user script.php
предположите, что script.php пытается переименовать эти два каталога:
// this operation fails as PHP (running as apache) does not own "temp",
// despite having write permissions
rename('temp', 'temp.bak');
// this operation is successful as PHP owns "temp2"
rename('temp2, 'temp.bak');
Попытайтесь запустить следующий скрипт:
print_r(posix_getpwuid(getmyuid()));
print_r(pathinfo($YOUR_PATH));
И посмотрите то, что это возвращает.
Другая вещь, которая могла бы помочь этим видам ситуаций, состоит в том, чтобы попытаться на самом деле понизить полномочия. Я видел случаи, где апач отклоняет разрешение приложения сделать что-то, потому что его полномочия установлены слишком высоко. Мое предположение - то, что это должно поощрить хорошую практику безопасности.