CodeSky 代码之空

随手记录自己的学习过程

PHP 编写函数实现千位分组

2014-01-25 19:34分类: PHP评论: 0

这个,其实PHP还是有自带函数的,number_format() 扩展阅读:http://www.w3school.com.cn/php/func_string_number_format.asp

不过有的时候我真的是太依赖自带函数了,可能其他语言没那么强大的函数库就死了吧,所以这里还是需要动动脑子的,正好弥补代码量不足的问题。

缺点在于:小数死……(这个缺点有空修复好了= =目前正在赶进度……)

演示

阅读更多 →

PHP 一个函数实现字符串反转

2014-01-25 19:31分类: PHP评论: 0

这其实还是一道题目OTZ当然不用在意这些细节,写出来之后它已经不算是题目了吧。

但我写的函数有个缺点,那就是它是以length分割的(因为还不会正则表达式),在PHP 语法糖一枚中提到过:

length = 1代表 截取一个字节,所以对于中文不适用。

2014年02月02日更新:PHP 实现中文字符串截取无乱码修复中文支持

中文截取就会出现乱码问题。

补刀:如果不是题目的话可以使用官方自带函数strrev() 扩展阅读:http://www.w3school.com.cn/php/func_string_strrev.asp

先来看一下函数部分吧。

阅读更多 →

PHP 双引号内数组的正确输出方式

2014-01-25 19:23分类: PHP评论: 1

又是题目,除了题目我果然一无所有=A=

1   	<?php
2     	 $fruits = array('strawberry'=>'red', 'banana'=>'yellow');
3   	?>
4

A.echo "A banana is {$fruits['banana']}"; B.echo "A banana is $fruits['banana']"; C.echo "A banana is {$fruits[banana]}"; D.echo "A banana is $fruits[banana]"; 结果选A,这是一件我觉得很神奇的事情,为什么B不行呢,因为就是那么规定的,至于D,会报错,但还是会有输出,不推荐,因为这个常量并没有被定义。

扩展阅读:http://www.php.net/manual/zh/language.types.string.php#language.types.string.parsing

阅读更多 →

PHP 语法糖一枚

2014-01-25 19:09分类: PHP评论: 0

又是刷题目刷到的,真是一个悲伤的故事。

1<?php
2$s = '12345 ';
3$s[$s[1]] = '234 ';
4echo $s;
5?>
6

输出是什么呢,很奇怪吧,明明不是数组。 其实在字符串中这么表示意思就是第n - 1个字符。 比如$s[1]截取的就是2,当然这里只接受length = 1的字符,而不接受字符串,所以第二步只是将3替换为了2,而没有把字符串替换进去。

*length = 1*代表 截取一个字节,所以对于中文不适用,关于中文的字节数,见PHP utf-8下strlen()小结

扩展阅读:http://www.php.net/manual/zh/language.types.string.php#language.types.string.substr

字符串原型大概指的是:$str = 'abc'[1] 差不多这个意思吧

阅读更多 →

PHP 使用foreach批量赋值误区

2014-01-25 18:42分类: PHP评论: 0

又是一道坑爹的题目,不得不说《细说PHP》很好的解决了各种误区问题啊……

这里稍微改一下,其实只是把字符串内容改了而已OTZ。

1	$array = array('sky', 'power');
2
3	foreach ($array as $key => $value) {
4		$array[$key] = 'ao';
5	}
6
7	print_r($array);
8

请问输出是什么?

直观的想想,$value变了的话数组的元素值不就应该改变了吗,但输出却是:Array ( [0] => sky [1] => power ),而我们把$value改为$array[$key],输出结果元素就全部替换为ao了,看来并不能这么替换,毕竟语法上赋值是后者。

阅读更多 →

表单input增强用户体验(label和placeholder)

2014-01-25 18:21分类: HTML评论: 0

placeholder好像是一个会用上瘾的属性,比如说本站的搜索框,请输入关键词用的就是placeholder,它比value要好用许多,当输入为空时出现,有输入时消失,value的用户体验就糟糕透了。

当然,这是HTML5的新属性,所以可能又会在IE6碰壁(大概) 扩展阅读:http://www.w3school.com.cn/html5/att_input_placeholder.asp

而label则把文字和input关联了起来,比如

1<label>保留文件名:<input type="checkbox" name="file_name" value="yes"></label>
2

那么即使是点击文字,也会选中checkbox,比起文字孤立来更好 具体应用于相对路径生成器

这里我用的是label的隐形写法,它还有显性写法,见扩展阅读。

扩展阅读:

  1. http://www.w3school.com.cn/tags/tag_label.asp HTML的label属性
  2. http://www.w3school.com.cn/html5/tag_label.asp HTML5中的label属性
阅读更多 →

PHP utf-8下strlen()小结

2014-01-24 14:58分类: PHP评论: 0

strlen()用于获取字符串长度,英文1字节好无悬念,而中文呢。

1<?php
2	$str = 'hello 你好世界';
3	echo strlen($str);
4?>
5

运行了一下这个结果是18很疑惑,为什么呢,一直以为中文就按2字节来计,结果看到:中文字占2-4字节 这样就明白了,在这里一个中文三个字节,剩下的以后再补充好了

扩展阅读http://php.net/strlen

阅读更多 →

PHP Call-time pass-by-reference has been removed 错误解决

2014-01-24 14:34分类: PHP评论: 0

依旧是做到题目的时候发现了这个问题,可能是PHP版本不同引发的问题,然后默默的搜索了一下。

按引用传参,其实只用在定义时指定"&"即可,调用时不用写,只不过一直以来都这么写也没报过错,看来是5.4版增强了检查,不允许这种调用了。 调用时去掉"&",只保留方法定义中的"&",这次一切OK了。

阅读更多 →

PHP in_array()函数设置

2014-01-24 12:24分类: PHP评论: 0

6.以下代码的执行后是,$result值为( B )。

1<?php
2	$a = "01";
3	$result = 1;
4	if(in_array($a,array("1"))){
5		$result = 2;
6	}else if($a == "1"){
7		$result = 3;
8	}else if($a == "01"){
9		$result = 4;
10	}else{
11		$result = 5;
12	}
13?>
14

A.1 B.2 C.3 D.4 E.5

阅读更多 →
共 525 篇文章,53 页
......