在php帮助中找到这行代码不是复杂
<?phpfunction utfCharToNumber($char) {
$i = 0;
$number = '';
while (isset($char{$i})) {
$number.= ord($char{$i});
++$i;
}
return $number;
}// example use
foreach (array('a','A','b','B','c','C','e','é','É', 'ó','Ó','ö','Ö','ő','Ő','ú') as $d) {
echo $d,': ',utfCharToNumber($d),"\n";
}
?>
运行后觉得里面有两个问题不是很清楚isset($char{$i})这里的$char{$i}和 $char [$i]有什么区别,
用print输出$char{$i}和$char是一样的效果如果是这样作者为什么不写$char还直接写,因为我输出的这里的$i每次循环的时候都是0,小弟不才学的不好请大侠们多多指点。
<?phpfunction utfCharToNumber($char) {
$i = 0;
$number = '';
while (isset($char{$i})) {
$number.= ord($char{$i});
++$i;
}
return $number;
}// example use
foreach (array('a','A','b','B','c','C','e','é','É', 'ó','Ó','ö','Ö','ő','Ő','ú') as $d) {
echo $d,': ',utfCharToNumber($d),"\n";
}
?>
运行后觉得里面有两个问题不是很清楚isset($char{$i})这里的$char{$i}和 $char [$i]有什么区别,
用print输出$char{$i}和$char是一样的效果如果是这样作者为什么不写$char还直接写,因为我输出的这里的$i每次循环的时候都是0,小弟不才学的不好请大侠们多多指点。
我输出的这里的$i每次循环的时候都是0。
function utfCharToNumber($char) {
$i = 0;
$number = '';
while (isset($char{$i})) {
$number.= ord($char{$i});
++$i;
}
var_dump($i);
return $number;
}
我想你没测准。普通字母输出$i为1,也就是一字节。那个希腊文吧是2,汉字'我'是3
A: 65
b: 98
B: 66
c: 99
C: 67
e: 101
é: 195169
É: 195137
ó: 195179
Ó: 195147
ö: 195182
Ö: 195150
ő: 197145
Ő: 197144
ú: 195186$char{$i} 和 $char[$i]
有着质的不同
前者表示字符串 $char 的第 $i 个字节,后者表示数组 $char 的第 $i 个元素
当然用 $char[$i] 来表示字符串 $char 的第 $i 个字节也并没有错误,这就是其他高级语言的“字节数组”
但是,你对字符串使用数组函数就一定达不到你预期的效果
所以从一开始就加以区别,是很必要的