Pure Bash с использованием массива:
version='1.2.33'
a=( ${version//./ } ) # replace points, split into array
((a[2]++)) # increment revision (or other part)
version="${a[0]}.${a[1]}.${a[2]}" # compose new version
Это тернарный оператор :
Выражение (expr1)? (expr2): (expr3)
оценивается как expr2
, если expr1
оценивается как TRUE
, и expr3
if expr1
оценивается как FALSE
.
Эта последняя часть известна как условный оператор . По сути, это сжатый оператор if / else
.
Он работает следующим образом:
$items =
// if this expression is true
(isset($_POST['items']))
// then "$_POST['items']" is assigned to $items
? $_POST['items']
// else "array()" is assigned
: array();
Также вот некоторый псевдокод, который может быть проще:
$items = (condition) ? value_if_condition_true : value_if_condition_false;
Изменить: Вот пример быстрое, педантичное замечание: в документации PHP этот оператор называется тернарным оператором . Хотя условный оператор технически является тернарным оператором (то есть оператором с 3 операндами), называть его тернарным оператором было бы неправильным (и довольно предположительным).
Это тернарный оператор, который по существу говорит, что если ключ элементов находится в $ _POST, тогда установите $ items равным значению $ _POST ['items'], иначе установите его в нулевой массив .
Это то же самое, что:
if (isset($_POST['items']){
$items = $_POST['items'];
} else {
$items = array();
}
Обычно, если $ _POST ['items'] существует, тогда $ items устанавливается на него, иначе он устанавливается на пустой массив.
Посмотрите на ответ Паоло, чтобы понять тернарный оператор.
Чтобы делать то, что вы смотрите, вы можете использовать переменную сеанса.
вверху страницы поместите это (потому что вы не можете ничего вывести на страницу до начала сеанса. IE NO ECHO STATEMENTS)
session_start();
Затем, когда пользователь отправляет вашу форму, сохраните результат в этой переменной сервера. Если это первый раз, когда пользователь отправил форму, просто сохраните ее напрямую, в противном случае прокрутите и добавьте любое значение, которое не пусто. Посмотрите, что вы ищете:
HTML CODE (testform.html):
<html>
<body>
<form name="someForm" action="process.php" method="POST">
<input name="items[]" type="text">
<input name="items[]" type="text">
<input name="items[]" type="text">
<input type="submit">
</form>
</body>
</html>
Код обработки (process.php):
<?php
session_start();
if(!$_SESSION['items']) {
// If this is the first time the user submitted the form,
// set what they put in to the master list which is $_SESSION['items'].
$_SESSION['items'] = $_POST['items'];
}
else {
// If the user has submitted items before...
// Then we want to replace any fields they changed with the changed value
// and leave the blank ones with what they previously gave us.
foreach ($_POST['items'] as $key => $value) {
if ($value != '') { // So long as the field is not blank
$_SESSION['items'][$key] = $value;
}
}
}
// Displaying the array.
foreach ($_SESSION['items'] as $k => $v) {
echo $v,'<br>';
}
?>