解惑

解己之惑,解人之惑

PHP的函数返回值

本来就是想修改下header.php,让我的标签列表以及分类列表的标题更好一些,因为原来的标签文章列表的标题和站点首页的是一样的,在搜索引擎收录信息里面都是一样的,不好区分,这么一个简单的功能,本来以为一分钟可以搞定的,结果因为不熟悉PHP的语法,足足弄了半个小时才搞定。原理很简单,就是取得页面的URI的值,然后判断是否包含/tag/或者/category/:
<?php if ( strpos($_SERVER["REQUEST_URI"],’/tag/’)==0 ) { ?> &raquo; 标签 &raquo; <?php  echo(urldecode(substr($_SERVER["REQUEST_URI"],5))); } ?> <?php if ( strpos($_SERVER["REQUEST_URI"],’/category/’)==0 ) { ?> &raquo; 分类 <?php } ?>
问题是strpos在没有匹配的时候返回FALSE,而PHP不是强类型语言,有匹配返回但是是第一个匹配的时候,返回的是0,而在弱类型的时候,FALSE的等价值就是0,所以上面的判断就是错的。
后来看下了手册里面,注意到里面特别提到了===判断,就是进行强类型检查的,所以修改为:
<?php if ( strpos($_SERVER["REQUEST_URI"],’/tag/’)===0 ) { ?> &raquo; 标签 &raquo; <?php  echo(urldecode(substr($_SERVER["REQUEST_URI"],5))); } ?> <?php if ( strpos($_SERVER["REQUEST_URI"],’/category/’)===0 ) { ?> &raquo; 分类 <?php } ?>

问题搞定。

(Visited 182 times, 1 visits today)

2 Comments

  1. 留言的时候有些乱,不顾总体来说很不错,欢迎来 http://redmag.cn/rank登记。

  2. 好久没来了
    更新挺快啊
    不能上网日子真难受

发表评论

邮箱地址不会被公开。 必填项已用*标注

© 2024 解惑

本主题由Anders Noren提供向上 ↑