<?php
/*题目要求:输入格式为"get-element-by-id"的任意字符串,将其转换为驼峰命名的字符串,例如getElementById*/
$str = "get-element-by-id";
$str1 = "president-donald-trump";
$str2 = "high-school-student-informantion-management-system";
function camelCase($str){
/*仅在第一次调用 strtok() 函数时使用了 string 参数。在首次调用后,该函数仅需要 split 参数,这是因为它清楚自己在当前字符串中所在的位置。*/
$token=strtok($str,"-");
$a=array();
while($token !== false){
$str_temp = $token;
/*将分割的子串依次放入数组中*/
array_push($a,$str_temp);
/*这一句一定不能少,否则内存溢出*/
$token=strtok("-");
}
//检测是否正确地将字符串分割为子串
var_dump($a);
/*遍历字符串数组,将数组中第二个元素开始的字符串的首字符依次转换为大写字母*/
for($i=1;$i<count($a);$i++){
$a[$i]=ucfirst($a[$i]);
}
/*implode函数把数组元素组合为字符串:*/
$str_return=implode("",$a);
echo $str_return."<br></br>";
}
camelCase($str);
camelCase($str1);
camelCase($str2);
?>
挺简单的一道题,但是当时太紧张,还上网查了一下这几个额函数的具体用法
当着面试官写完的代码。最开始错误很多:
$token=strtok("-");
这句没写导致内存溢出;
for($i=1;$i<count($a);$i++)
第二个$i忘了加变量符号
$a[$i]=ucfirst($a[$i]);
忘了将返回值赋值给$a[$i];
然后被面试官怼惨了