Мне нужна помощь, чтобы изменить символ в php. У меня есть код из Интернета:
char dest='a'; int conv=(int)dest;
Могу ли я использовать этот код для преобразования символа в числовой? Или у вас есть идеи? Я просто хочу показать результат как десятичное число:
if null == 0 if A == 1
Используйте ord (), чтобы вернуть значение ascii. Вычитайте 96, чтобы вернуть число, где a = 1, b = 2 ….
Буквы верхнего и нижнего регистра имеют разные значения ASCII, поэтому, если вы хотите обрабатывать их одинаково, вы можете использовать strtolower () для преобразования верхнего регистра в нижний регистр.
Чтобы обрабатывать случай NULL
, просто используйте if($dest)
. Это будет верно, если $dest
– это нечто иное, чем NULL
или 0
.
PHP – это свободно типизированный язык, поэтому нет необходимости объявлять типы. Итак, char dest='a';
это неверно. Переменные имеют $
префикс в PHP и не объявляют тип, поэтому он должен быть $dest = 'a';
,
Живой пример
<?php function toNumber($dest) { if ($dest) return ord(strtolower($dest)) - 96; else return 0; } // Let's test the function... echo toNumber(NULL) . " "; echo toNumber('a') . " "; echo toNumber('B') . " "; echo toNumber('c'); // Output is: // 0 1 2 3 ?>
PS: Здесь вы можете посмотреть значения ASCII .
Это может помочь вам: http://www.php.net/manual/en/function.ord.php
Он действительно работает так же, как в примере, за исключением того, что вы должны использовать синтаксис php (и в качестве побочного элемента: язык, который, по вашему мнению, был наиболее вероятным, он не делал то же самое).
Так:
$in = "123"; $out = (int)$in;
Впоследствии будет выполнено следующее:
$out === 123
На это очень сложно ответить, потому что это не вопрос, а просто немного.
Но если вы спросите.
Кажется, вам нужна таблица переводов, которая определяет ссылки между буквами и номерами
A -> 2 B -> 3 C -> 4 S -> 1
или что-то еще.
Вы можете достичь этого, используя массив, в котором будут указаны эти буквы и значения – нужные числа.
$defects_arr = array( 'A' -> 2, 'B' -> 3, 'C' -> 4' 'S' -> 1 };
Таким образом, вы можете преобразовать эти буквы в числа
$letter = 'A'; $number = $defects_arr($letter); echo $number; // outputs 1
Но это все еще не то, что вы хотите.
Имеют ли эти типы дефектов какие-либо подробные эквиваленты? Если да, почему бы не использовать их вместо букв?
Рассказывать всю историю, а не немного, поможет вам избежать ошибок и сэкономить массу времени, как ваших, так и тех, кто будет отвечать.
Итак, если вам нужен код ASCII, вам нужно будет:
$dest = 'a'; $conv = ord($dest);
Если вы хотите что-то вроде:
a == 1 b == 2 . . .
ты должен сделать:
$dest = 'a'; $conv = ord($dest)-96;
Для получения дополнительной информации о кодах ASCII: http://www.asciitable.com/
И для функции ord: http://www.php.net/manual/en/function.ord.php