Увеличить буквы в PHP?
Недавно мне пришлось увеличить буквы в PHP в цикл повторить.
На каждой итерации, а не числовые индексы, нужно буквы алфавита.
Следовательно, как уже знаю, что PHP делает приращением букв (и достаточно просто), я сделал что-то вроде этого.
for($letra = 'a'; $letra != 'aa'; $letra++) {
echo $letra;
}
// abcdefghijklmnopqrstuvwxyz
Однако, поскольку вы никогда не видели это документально, ни в никакой другой язык, который я знаю средство, как эту, я в сомнений, если должен использовать или нет.
учетной записи, кодирования (и другие), это безопасно использовать этот ресурс, или лучше обратиться для друзей chr
и range('a', 'z')
, как показано в примере ниже?
for($letra = 97; $letra <= 122; $letra++) {
echo chr($letra);
}
//abcdefghijklmnopqrstuvwxyz
echo implode('', range('a', 'z')); //abcdefghijklmnopqrstuvwxyz
//abcdefghijklmnopqrstuvwxyz
3 answers
Это типичный язык слабо строго, как C например. Тип может использоваться, как если бы он был другой. Обратите внимание, что это отличается от динамически типизированным, так что C является статически типизированным языком (и ведет себя немного иначе).
В принципе нет проблем. Не вызывает ошибки любого рода. Только рекомендуется избегать эту особенность, когда это возможно, потому что это легко, использовать, неправильно. Ясно, что в простых ситуациях, как это трудно не заметить.
, Если это можно явно сказать, что такое намерение (работа с символами), это немного лучше с точки зрения удобочитаемости. Кто не знает, эта функция может выйти из-под контроля в первом примере кода вопроса. Но сказать, что неправильно это, драгоценности.
Я знаю, что это только пример, но в этом случае я бы использовал же string литерал :)
Как уже было сказано, это особенность языков слабо строго. это работает, потому что прирост будет сделано в коде ASCII(A-Z 65-90, a-z 97-122)
и точно не на буквы, которые вы видите. Это работает только с оператором инкремента(++
). Уже с декремента не удается, то есть, не дает для создания строки z-Z-A.
Ручного говорит такого поведения, что он следует convesão Perl, который говорит, что набор действительны для приращения (a-z, a-Z и 0-9), поэтому z
поворачивает aa
в C он будет рядом ASCII-код.
Эта функция будет полезна при сборке в заголовке таблицы, где координаты ex: A1, B1 ...
Примеры на Perl
$char = 'z';
print ++$char; //saída: aa
Примере эквивалент range()
@alfabeto = ('a'..'z');
foreach(@alfabeto){
print $_
}
- Это нормально сделать таким образом, если бы я вам требуется решение, поэтому я хотел бы сделать таким образом:
foreach (range('a', 'z') as $letra) { print $letra; }