52php

PHP的一些小技巧,比较基础,总结一下,老鸟换个姿势飘过去就是。

1. str_replace

str_replace是非常常常常常用的php函数,用于字符串替换,经常看到某些php新人为了替换一批字符串,写了好多行str_replace,实在是惨不忍睹。

比如这个例子:

$str = \'某人的栖息地 --- blog.snsgou.com\';
$str = str_replace(\'某人\', \'坏人\', $str);
$str = str_replace(\'的\', \'di\', $str);
$str = str_replace(\'栖息地\', \'猪窝窝\', $str);
$str = str_replace(\'blog.snsgou.com\', \'snsgou.com\', $str);

以上,替换了4次字符串,实际只要换个写法,一行就搞定了:

$str = \'某人的栖息地 --- blog.snsgou.com\';
$str = str_replace(array(\'某人\', \'的\', \'栖息地\', \'blog.snsgou.com\'), array(\'坏人\', \'di\', \'猪窝窝\', \'snsgou.com\'), $str);

2. array

经常看到有人拿数组这样写:

echo $arr[some_key];

上面这行代码能跑,看上去也没什么大问题,但是如果你把php.ini的error notice打开的话,会收到一大批error。php解析器首先是拿“some_key”当作一个常量来解释的,但如果没有定义some_key这样一 个常量,解析器还是很宽容的把它当作了一个字符串来看待。因此新人同学们最好写完整一点:

echo $arr[\'some_key\'];

这样就没有问题了,如果你要把它放在双引号中连用,也不能省掉引号,可以这样写:

echo "这是混在双引号中的字符串{$arr[\'some_key\']}";

3. 类型戏法

类型戏法相当好用,比如有一个表单提交过来的变量,正常情况下它应该是整型的,有时候偷懒省去校验的写法可以是这样的:

$intVar = (int)$_POST[\'post_var\'];

再比如数组,有时候写键值要打引号是不是很不爽啊,我们可以把它转换成object,比如:

$arr = array(\'name\' => \'volcano\', \'sex\' => \'male\');
$arr = (object)$arr;

echo $arr->name;
echo $arr->sex;

是不是很省事?

4. lambda函数

lamda函数和array_*系列函数使用有奇效,拿php手册上的一个例子来说:

<?php
	$av = array("the ", "a ", "that ", "this ");
	array_walk($av, create_function(\'&$v,$k\', \'$v = $v . "mango";\'));
	print_r($av);
?>

至少省了一个for循环

5. 嵌套循环显示表格的单元格

嵌套循环显示表格的单元格,这是一个很老的话题哦,往往会要在某个单元格后边加个条件判断什么的,考虑是不是要输出tr抑或是td标签。

俺这里介绍一个办法,利用array_chunk函数能够比较工整的输出html,见下例,这个例子要输出一个4行6列的表格:

<?php
$arr = range(1, 24); //这个会生成一个数组array(1,2,3,4....24)
$arr = array_chunk($arr, 6);

// output table
?>

<table>
	<?php foreach($arr as $row): ?>
	<tr>
		<?php foreach($row as $col):?>
		<td><?php echo $col?></td>
		<?php endforeach;?>
	</tr>
	<?php endforeach;?>
</table>

分类:

技术点:

相关文章:

  • 2021-06-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-06
  • 2021-06-21
  • 2021-11-28
  • 2021-08-28
猜你喜欢
  • 2022-02-07
  • 2021-12-05
  • 2021-12-30
  • 2021-10-01
  • 2021-09-27
  • 2021-10-07
  • 2021-05-22
相关资源
相似解决方案