本文整理匯總了PHP中IO::in方法的典型用法代碼示例。如果您正苦於以下問題:PHP IO::in方法的具體用法?PHP IO::in怎麽用?PHP IO::in使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類IO
的用法示例。
在下文中一共展示了IO::in方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: dialog
/**
* Консольный диалог
*
* Диалог формируется из трех состовляющих: сообщение $message, варианты ответов $answ и
* ответом по-умолчанию $default.
*
* Доступны варианты ответа: {@link IO::NONE}, {@link IO::OK}, {@link IO::CANCEL}, {@link IO::YES},
* {@link IO::NO}, {@link IO::ALL} в любых комбнациях.
* Один из вариантов ответа можно указать как ответ по умолчанию. Если он не указан, то ответом по
* умолчанию считает первый(младший) из вариантов ответа.
* При выводе варианты ответа транслируются(отображаются) в соответствии с массивом {@link IO::$answText}.
*
* Метод выводит текст сообщения, варианты ответа, среди которых цветом выделен ответ по умолчанию.
* После чего ожидает ввод пользователя.
*
* Если пользователь ничего не ввел(нажал Enter) тогда принимается ответ по умолчани,
* остальные варианты распознаются по первой букве в массиве {@link IO::$answText} без учета регистра.
* Если ответ не найден среди вариантов выбрасывается исключение.
*
* Метод возвращает выбранный вариант ответа.
*
* <code>
* $answ = IO::dialog('Do You really want to do ~RED~THIS~~~?', IO::NO | IO::YES, IO::NO);
* if ( IO::YES == $answ ){
* // let's do it
* }
* else IO::out('Cancelled... ');
* </code>
*
*
* @throws IOException
* @param string $message текст сообщения
* @param int $answ варианты ответов
* @param int $default ответ по умолчанию
* @return int выбранный вариант ответа
*/
static function dialog($message, $answ = IO::NONE, $default = null)
{
IO::out($message, false);
$a = array();
if ($answ & IO::NONE) {
$answ = $default = $a[0] = IO::NONE;
} else {
if ($answ & IO::YES) {
$a[] = IO::YES;
}
if ($answ & IO::OK) {
$a[] = IO::OK;
}
if ($answ & IO::NO) {
$a[] = IO::NO;
}
if ($answ & IO::CANCEL) {
$a[] = IO::CANCEL;
}
if ($answ & IO::ALL) {
$a[] = IO::ALL;
}
}
if (is_null($default)) {
$default = $a[0];
}
for ($i = 0, $c = count($a); $i < $c; $i++) {
$avaible[$i] = self::$answText[$a[$i]];
if ($a[$i] == $default) {
$avaible[$i] = '~WHITE~' . $avaible[$i] . '~~~';
}
}
$str = ' [ ' . implode(' / ', $avaible) . ' ] ';
IO::out($str, false);
if (self::$assumeYes) {
IO::out(null);
return $default;
}
$in = IO::in(IO::TYPE_CHAR);
if ($answ == IO::NONE) {
return null;
}
if (is_null($in)) {
return $default;
}
for ($i = 0, $c = count($a); $i < $c; $i++) {
if (strtolower($in) == substr(strtolower(self::$answText[$a[$i]]), 0, 1)) {
return $a[$i];
}
}
throw new IOException('Incorrect input');
}
示例2: cmdPassword
public function cmdPassword()
{
try {
$login = ArgsHolder::get()->shiftCommand();
$password = ArgsHolder::get()->shiftCommand();
if ($login === false) {
return io::out('Incorrect param count', IO::MESSAGE_FAIL) | 1;
}
if ($user = User::findBy("login", $login)) {
if (!$password) {
IO::out('New password: ', false);
$password = IO::in(IO::TYPE_STRING);
IO::out('Confirm New password: ', false);
$p2 = IO::in(IO::TYPE_STRING);
if ($password != $p2) {
return io::out('Passwords not match.', IO::MESSAGE_FAIL) | 2;
}
}
$user->setPassword($password);
} else {
return io::out(PHP_EOL . 'User ~WHITE~' . $login . '~~~ not found', IO::MESSAGE_FAIL) | 3;
}
} catch (UserException $e) {
return io::out($e->getMessage(), IO::MESSAGE_FAIL) | 127;
}
}