Я использую класс elses кого-то, и этот человек определил функцию с пятью аргументами.Как использовать функцию с необязательным аргументом, определенным как третий
в Sentry.php:
function checkLogin($user = '',$pass = '',$group = 10,$goodRedirect = '',$badRedirect = '')
Если все пять полей заполняются это приводит к процедуре регистрации.
Теперь на странице, где он объясняет, как использовать это, есть фрагмент, который, согласно php.net, не имеет смысла.
на странице, которая загружает часовой:
require_once('../system/Sentry.php');
$theSentry = new Sentry();
if(!$theSentry->checkLogin(2)){ header("Location: login.php"); die(); }
, который по умолчанию должна вести себя как таковой, что она проверяет, является ли $ группы аргумент < = 10 (по умолчанию). В этой ситуации это должно быть два. Если у пользователя установлен групповой переменный < = 2, это должно позволить человеку просмотреть страницу.
Однако, это не работает, и по очень очевидной причине: Руководство по PHP состояний:
Обратите внимание, что при использовании по умолчанию аргументов, либо по умолчанию должно быть правой сторона любого не- default аргументы; в противном случае вещи не будут работать должным образом.
Поэтому код, согласно phpbuilder.com должны иметь не факультативного ($variable = default_something
) поля, чтобы заполнить с помощью вызова функции, и это, безусловно, не должно быть определенно в качестве третьего из пяти аргументов.
Как я могу использовать функцию, как это ?:
checkLogin(2)
так меняет порядок аргументов - лучший выбор? – xaddict
Я бы сказал, что метод checkLogin без имени пользователя и пароля не может проверить много :) так что первые два параметра (имя пользователя/пароль) должны быть обязательными). , но это верно только в этом конкретном случае checkLogin. – Rufinus
Предоставление NULL в качестве аргументов не приводит к тому, что функция использует значение аргумента по умолчанию, поэтому в этом случае $ user и $ pass являются NULL, а не '', что, вероятно, не имеет никакого значения в этом случае. – danamlund