Looping through letters is possible. I'm amazed at how few people know that.
for($col = 'R'; $col != 'AD'; $col++) {
echo $col.' ';
}
returns: R S T U V W X Y Z AA AB AC
Take note that you can't use $col < 'AD'. It only works with !=
Very convenient when working with excel columns.for
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
for
Референца за `control-structures.for.php` со подобрена типографија и навигација.
for
(PHP 4, PHP 5, PHP 7, PHP 8)
for циклусите се наједноставните циклуси во PHP. Тие се однесуваат како нивните колеги во C. Синтаксата на
for циклусот е:
for (expr1; expr2; expr3)
statement
Првиот израз (expr1) се проценува (извршува) еднаш безусловно на почетокот на циклусот.
На почетокот на секоја итерација,
expr2 се проценува. Ако се проценува на
true,
falseциклусот продолжува и вгнездените изјави се извршуваат. Ако се проценува на
, expr3 извршувањето на циклусот завршува.
На крајот на секоја итерација, expr2се проценува (извршува).
expr2 Секој од изразите може да биде празен или да содржи повеќе изрази разделени со запирки. Во
true, сите изрази разделени со запирка се проценуваат, но резултатот се зема од последниот дел. break
празен значи дека циклусот треба да се извршува неодредено (PHP имплицитно го смета како for , како C). Ова можеби не е толку бескорисно како што мислите, бидејќи честопати би сакале да го прекинете циклусот користејќи условна
изјава наместо да ја користите
<?php
/* example 1 */
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
/* example 2 */
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}
/* example 3 */
$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
/* example 4 */
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>
израз на вистинитост. for Разгледајте ги следните примери. Сите тие прикажуваат броеви од 1 до 10:
Се разбира, првиот пример изгледа најубав (или можеби четвртиот), но може да откриете дека можноста за користење празни изрази во
for loops.
for (expr1; expr2; expr3):
statement
...
endfor;
Вообичаено е за многу корисници да итерираат низ низи како во примерот подолу.
<?php
/*
* This is an array with some data we want to modify
* when running through the for loop.
*/
$people = array(
array('name' => 'Kalle', 'salt' => 856412),
array('name' => 'Pierre', 'salt' => 215863)
);
for($i = 0; $i < count($people); ++$i) {
$people[$i]['salt'] = mt_rand(000000, 999999);
}
?>Горниот код може да биде бавен, бидејќи големината на низата се добива при секоја итерација. Бидејќи големината никогаш не се менува, циклусот може лесно да се оптимизира со користење на средна променлива за складирање на големината наместо повторно повикување count():
<?php
$people = array(
array('name' => 'Kalle', 'salt' => 856412),
array('name' => 'Pierre', 'salt' => 215863)
);
for($i = 0, $size = count($people); $i < $size; ++$i) {
$people[$i]['salt'] = mt_rand(000000, 999999);
}
?>Белешки од корисници 2 забелешки
The point about the speed in loops is, that the middle and the last expression are executed EVERY time it loops.
So you should try to take everything that doesn't change out of the loop.
Often you use a function to check the maximum of times it should loop. Like here:
<?php
for ($i = 0; $i <= somewhat_calcMax(); $i++) {
somewhat_doSomethingWith($i);
}
?>
Faster would be:
<?php
$maxI = somewhat_calcMax();
for ($i = 0; $i <= $maxI; $i++) {
somewhat_doSomethingWith($i);
}
?>
And here a little trick:
<?php
$maxI = somewhat_calcMax();
for ($i = 0; $i <= $maxI; somewhat_doSomethingWith($i++)) ;
?>
The $i gets changed after the copy for the function (post-increment).