用户名: 密码: 忘记密码? 注册
收藏此问题 发表新评论

测测你PHP基本功

本帖最后由 xyy666 于 2012-7-21 16:31 编辑

1.以下代码怎么改才能挞到最效率:
[php]
$x = new Array();
$x[sales] = 60;
$x[profit] = 20:
foreach($x as $key = $value) {
echo $key+" "+$value+"
“;
}
}
[/php]
  你能找到几个呢?


2.使用五种以上方式获取一个文件的扩展名
昵称: xyy666  时间: 2012-07-21 16:29:46
这是js 还是php啊...
昵称: 大尾巴  时间: 2012-07-21 17:52:20
这是找bug吧。。。
昵称: iminto  时间: 2012-07-21 19:33:04
这个是网上流传很广的面试题
昵称: phptree  时间: 2012-07-22 07:35:42
$x = array('sales'=>60, 'profit'=>20);
foreach($x as $k=>$v){
    echo $k.'-'.$v;
}

只能想出这样的 - -
昵称: 人尤木木木  时间: 2012-07-23 16:05:30
扩展名,我只想出4种- -
function ext1($fileName){
                return end(explode('.', $fileName));
        }
       
        function ext2($fileName){
                $arr = pathinfo($fileName);
                return $arr['extension'];
        }

        function ext3($fileName){
                return pathinfo($fileName, PATHINFO_EXTENSION);
        }
       
        function ext4($fileName){
                return substr($fileName, strpos($fileName, '.')+1);
        }
昵称: 人尤木木木  时间: 2012-07-23 16:14:47
人尤木木木 发表于 2012-7-23 16:14
扩展名,我只想出4种- -
function ext1($fileName){
                return end(explode('.', $fileName));

function ext5($filename){
    return strrchr($filename,".");
}
昵称: leven5  时间: 2012-07-25 19:33:03
人尤木木木 发表于 2012-7-23 16:14
扩展名,我只想出4种- -
function ext1($fileName){
                return end(explode('.', $fileName));

四种不错了...
昵称: 改变..........  时间: 2012-07-25 22:54:19
$x = new Array();
$x[sales] = 60;
$x[profit] = 20:
foreach($x as $key = $value) {
echo $key+" "+$value+"
;
}
}
昵称: Crossnite  时间: 2012-07-29 16:45:40
<?php
$x = array();
$x['sales'] = 60;
$x['profit'] = 20;
foreach($x as $key => $value) {
echo $key.' '.$value.' ';
}
?>
昵称: 古草  时间: 2012-07-30 12:38:45
$x = array('sales'=>60,'profit'=>20);

foreach($x as $key => $value) {

        echo "$key  $value";

}
昵称: 2008feixu  时间: 2012-07-30 16:51:57
初学,W7应该怎么装PHP的运行环境
昵称: 新悦5  时间: 2012-07-30 17:21:14
iminto 发表于 2012-7-21 19:33
这是找bug吧。。。

我看也是找bug
昵称: houlai  时间: 2012-07-30 17:24:17
找BUG,,,,
昵称: 宇ㄨMa♂n  时间: 2012-07-30 17:50:32
都说是测测基本功了{:soso_e144:}
昵称: chen_pei  时间: 2012-07-31 11:48:04
按每行看下去的话(合计居然有超过10种问题!):

Line1: 定义数组不需要 new
Line2: 这里的键要用单引号引起来
Line3: 问题同上, 另外结尾要用分号
Line4: 数组循环是用 => 来表示键和值
Line5: 字符串连接不是+,而是.  [改进部分: A:缩进写法; B: echo多个输出的时候,用逗号分隔,无需再连接]
Line6: 字符串左右要半角的引号
line8: 多了个大括号
昵称: idesigner  时间: 2012-07-31 17:09:06
人尤木木木 发表于 2012-7-23 16:14
扩展名,我只想出4种- -
function ext1($fileName){
                return end(explode('.', $fileName));

要很好的兼容没有后缀的情况!
昵称: 齐迹  时间: 2012-07-31 17:16:38
leven5 发表于 2012-7-25 19:33
function ext5($filename){
    return strrchr($filename,".");
}

这样做固然简单,但是当文件名也有点的时候,就会出现bug了。

比如 aaavvvv.aaa.jpg,按照这样的截取方式,后缀名是.aaa.jgp。

所以,应该用substr()结合strrpos()来做。
昵称: elarity  时间: 2012-07-31 18:38:49
strrchr 是取最后一个出现的
昵称: Coseylee  时间: 2012-08-01 09:31:00
都是高手啊
昵称: predict  时间: 2012-08-01 11:53:09
$x['sales'] = 60;
$x['profit'] = 20:
昵称: fzxu_05  时间: 2012-08-01 13:38:52
elarity 发表于 2012-7-31 18:38
这样做固然简单,但是当文件名也有点的时候,就会出现bug了。

比如 aaavvvv.aaa.jpg,按照这样的截取方 ...

正解
昵称: fzxu_05  时间: 2012-08-01 13:39:57
elarity 发表于 2012-7-31 18:38
这样做固然简单,但是当文件名也有点的时候,就会出现bug了。

比如 aaavvvv.aaa.jpg,按照这样的截取方 ...

strrchr是取最后一个.之后的字符,所以说,这道题你被考住了,因为你无法正确分析这样一段代码,好好巩固一下函数吧
昵称: leven5  时间: 2012-08-01 19:27:58
fzxu_05 发表于 2012-8-1 13:39
正解

正解?你就是第二个被考住的,我想你都没有测试吧?
strrchr是取最后一个点之后的字符,所以不会出现这样的情况。
不同于
$a = explode('.','abc.jpg.png');
echo $a[0];
are you 明白?
昵称: leven5  时间: 2012-08-01 19:29:35
leven5 发表于 2012-8-1 19:27
strrchr是取最后一个.之后的字符,所以说,这道题你被考住了,因为你无法正确分析这样一段代码,好好巩固 ...

嗯,你说得很很正确,是我错了。你表现不错,小同志,其实我是故意出错的·· ····你信么?
昵称: elarity  时间: 2012-08-01 21:00:34
菜鸟一个。。。。。
昵称: dolala999  时间: 2012-08-02 08:10:02
elarity 发表于 2012-8-1 21:00
嗯,你说得很很正确,是我错了。你表现不错,小同志,其实我是故意出错的·· ····你信么? ...

嘿,我还就不信,
昵称: leven5  时间: 2012-08-07 10:28:44
$x = array('sales'=>60,'profit'=>20);
$str='';
foreach($x as $key => $value) {
    $str.= $key.':'.$value.'<br/>';
}
echo $str;
昵称: yixing0805  时间: 2012-08-07 13:13:02

1.键没有使用引号
2.语句结束是;不是冒号
3. forearch 循环=后面少了>
4.字符串连接是.不是+
5.结尾的双引号跨行了.
6.多了一个结束的}
昵称: angeljyt  时间: 2012-08-08 12:55:21
第一题我想说说,
$xx[mykey] =1 系统首先会搜索全局变量 mykey ,如果没有,则以字符串形式出现。
数字与字符相加的话,会强制进行类型转换。其实也没有错。
昵称: guosheng1987  时间: 2012-08-09 17:04:04
echo $key,' ',$value,'';
昵称: zergcless  时间: 2013-02-16 14:11:32
为什么没有人把 echo 写成这个样子 echo $key,' ',$value,'';
昵称: zergcless  时间: 2013-02-16 14:12:18
看来还是基本功不行的啊!
昵称: ylyy  时间: 2013-02-16 20:12:03
看不懂啊~
昵称: zdenfey  时间: 2013-06-06 17:40:26
发表评论
昵称:
内容:
验证: