php中怎么区别false与0

 更新时间:2016年11月25日 15:05  点击:2191
PHP中当变量为0时,该变量同时也就“等于”false,那么如何区别0和false?这在有些条件语句中就很有用了,本文将举例说明。

首先看代码:

本代码的功能是查找一个字符串中是否以某个词语开头

 代码如下 复制代码

$title = "Hello world.";

$keyword = "you";

if(strpos($title , $keyword ) == 0) {

    echo "正确";

} else {

    echo "错误";

}

输出:正确

好像代码没错啊?为什么结果错了?查看帮助手册看到strpos()函数在字符串中查找词语的时候,如果存在该词语则返回该词语的索引位置,否则返回false,于是把代码做如下修改。

 代码如下 复制代码

if(strpos($title , $keyword ) == 0) {

    echo "正确";

} else if(strpos($title , $keyword ) == false) {

    echo "错误";

}

输出:正确

怎么又是错的?原来PHP中当变量为0时,该变量同时也就“等于”false,那么如何区别0和false?其实很简单,把代码再修改一下:

 代码如下 复制代码

if(strpos($title , $keyword ) === 0) {

    echo "正确";

} else if(strpos($title , $keyword ) === false) {

    echo "错误";

}

输出:错误

 代码如下 复制代码

<?php
/*
 * 测试boolean
 * 0 false
 */
 $num = 0;
 $bTest1 = false;
 $bTest2 = true;
 $strTest2 = 'false';
 if($num == $bTest1)
 {
  echo ('数字0与false是可以相等的');//显示
 echo ("<br/>");
 }
 if($bTest1)
 {
  echo('永不执行啊<br/>');//不显示
 }
 if(1)
 {
  echo('会执行吗,<br/>');//执行
 }
 if($bTest2)
 {
  echo('我是老大我要执行<br/>');//执行
  
 }
 else{
  echo('不要的都归我了哦<br/>');
 }
 echo (false == 0);//显示1 表示相等
 echo (true == 1);//显示1 表示相等
function testReturn ()
{
 echo('aaaaa');
 return;
 return 'bbbb';
 echo('cccc');
}
//return 表示该函数的返回就是执行到这下面的都将不执行了,exit是推出程序
echo testReturn();//调用该函数 将输出 ‘aaaa' ’bbbbb'
?>

很多时候false也等于0,当我们要返回的值中含有0的时候,例如对数字的查询就要注意了,可以用===来判断是否完全相等,

PHP 有一个 gettype() 函数,得到变量的类型。可以使用 === 运算符(看好了,有三个等号)。和 == 运算符 的区别在于该运算符同时比较数据的值和类型。
 
当终止条件中涉及不同的变量类型时,通过使用 ===和 !==运算符进行强类型检查是很重要的。

下面我们来介绍一下关于var_export 与 var_dump用法,有需要的朋友可参考。

var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值

•但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL

实例

 代码如下 复制代码

$res = yblog_mspconfiginit("ratings");
var_dump($res);
var_export($res);结果:

resource(1) of type (yahoo_yblog)
NULL再比如:

$res = fopen('status.html', 'r');
var_dump($res);
var_export($res);结果:

resource(2) of type (stream)
NULL

实例

 代码如下 复制代码

<?
//php var_export读写实例类
class user{
 var $filepath;
 function __()
 {
  $this->filepath = "d:/www.111cn.net/group/";
 }
 function cache() {
  $array = $this->db->select('select group_id,group_name from group','hashmap');
  $fp = fopen ($this->filepath, 'w');
  fputs($fp, '<?php return ' . var_export($array, true) . ';?>');
  fclose($fp);
 }

 function getVar_export($value) {
  $array = require($this->filepath);
  foreach ($array as $key => $v) {
   if ($key==$value) {
    $selected = ' current option';
   } else {
    $selected = '';
   }
   $html .= '<option value="' . $key . '"' . $selected . '>' . $v . '</option>';
  }
 
  return $html;
 }
}

//使用实例方法

$g = new user();
if( intval( $_GET['iscreate']) )
{
 $g->cache();
}
else
{
 $g->getVar_export('vv');
}
//本站原创www.111cn.net转载注明来源
?>

更多详细内容请查看:http://www.111cn.net/phper/21/02496253b66d66ca613a2f19ea40c22e.htm


var_dump函数
var_dump   (PHP 3 >= 3.0.5, PHP 4, PHP 5)   

var_dump -- 打印变量的相关信息

  void var_dump ( mixed expression [, mixed expression [, ...]] )   

此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。   

提示: 为了防止程序直接将结果输出到浏览器,可以使用输出控制函数(output-control functions)来捕获此函数的输出,并把它们保存到一个例如 string 类型的变量中。   


可以比较一下 var_dump() 与 print_r()。


例子

 代码如下 复制代码

 代码如下 复制代码

  <pre>

  <?php

  $a = array (1, 2, array ("a", "b", "c"));

  var_dump ($a);

  /* 输出:

  array(3) {

  [0]=>

  int(1)

  [1]=>

  int(2)

  [2]=>

  array(3) {

  [0]=>

  string(1) "a"

  [1]=>

  string(1) "b"

  [2]=>

  string(1) "c"

  }

  }

  */

  $b = 3.1;

  $c = TRUE;

  var_dump($b,$c);

  /* 输出:

  float(3.1)

  bool(true)

  */

  ?>

  </pre>

 

更多详细内容请查看:http://www.111cn.net/phper/php/43382.htm

PHP如何获取24小时计时法时间?使用本文提供一个自定义函数即可获取当前时间,并且使用的是24小时计时法计算的时间。
 代码如下 复制代码

function getTime() {
  $time="";
  //上午时间
  $h1=date("h")>12?(date("h")-12):date("h");
  //下午时间
  $h2=((date("h")+12)>=24)?date("h"):(date("h")+12);

//判断是否为上午
  if(date("a")=="am") {
       $time=date("Y-m-d $h1:i:s");
  } else { //判断是否为下午
       $time=date("Y-m-d $h2:i:s");
  }

 return $time;

}

下面我们来介绍关于php中date()函数的一些用法与基本详解,大家可参考。

date函数用法

 代码如下 复制代码

date($t);

格式如下:

显示的格式: 年-月-日 小时:分钟:秒
相关时间参数:
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "Friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
M - 月份,三个英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序数,二个英文字母; 如: "th","nd"
t - 指定月份的天数; 如: "28" 至 "31"
U - 总秒数
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位数字; 如: "1999"
y - 年,二位数字; 如: "99"
z - 一年中的第几天; 如: "0" 至 "365"
可以自由设定显示的内容,连接符号或是显示位置,例如 date("m-d H") 或者date("dmY");?>等php中的日期处理


实例

1,年-月-日

 代码如下 复制代码

echo date('Y-m-j');

2007-02-6


echo date('y-n-j');

07-2-6

大写Y表示年四位数字,而小写y表示年的两位数字;
小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。

 代码如下 复制代码

 

echo date('Y-M-j');

2007-Feb-6

 

echo date('Y-m-d');

2007-02-06

大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);
没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。

 代码如下 复制代码

 

echo date('Y-M-j');

2007-Feb-6

 

echo date('Y-F-jS');

2007-February-6th

大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)
大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。

小结:
表示年可以用大写的Y和小写y;
表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);
表示日可以用小写d和小写j,大写S表示日期的后缀。


2,时:分:秒

默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。

 代码如下 复制代码

 

echo date('g:i:s a');

5:56:57 am

 

echo date('h:i:s A');

05:56:57 AM

小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。
当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。

 代码如下 复制代码

 

echo date('G:i:s');

14:02:26

本文章主要求介绍了利用php自带的函数来实现数组进行排序,包括了一维数组排名,多维数组排序,随机排序等。

array_multisort($a,$b),$a,$b是两个数
•sort() 函数用于对数组单元从低到高进行排序。
•rsort() 函数用于对数组单元从高到低进行排序。
•asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
•arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
•ksort() 函数用于对数组单元按照键名从低到高进行排序。
•krsort() 函数用于对数组单元按照键名从高到低进行排序。

对多个数组排序

array_multisort($a,$b),$a,$b是两个数组,如果排序之后,$a数组的第3个元素被排到了第一位,那么$b的第三个元素不管他在$b中的大小都会排在第一位。看看下边的程序运行结果:

 

 代码如下 复制代码

<?php
$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

随机排序

 代码如下 复制代码

$array = array('A','2','3','4','5','6','7','8','9','10','J','Q','K');
shuffle($array);//随机排序数组
print_r($array);//输出数组

. 对多维数组排序

 代码如下 复制代码

<?php
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
                 $ar[1], SORT_NUMERIC, SORT_DESC);
?>


数组排序最常用的函数就是 sort($arr); 它的作用是按数组的键值升序排列,并且排序后的数组键名不再是原来的键名,是按新数组来重新设置的键名。

而有时我们要求更复杂的排序。如按键名排序,这里用到 ksort($arr); 函数,它会根据数组的键名排序,并维持原有的键值关系。相对应的 asort($arr); 函数,是按键值排序,且维持原有的键值关系


同样原理,rsort(); arsort(); krsort(); 函数除了排序是按降序排列外,其它与sort(); rsort(); ksort(); 相同。
数组操作是PHP很重要的基础

[!--infotagslink--]

相关文章

  • mysql_connect与mysql_pconnect的区别详解

    在mysql中我们会看到有两种常用的数据库连接模式,一种是长久连接,另一各是页面访问完之后就断了连接,下面我来分别介绍mysql_connect与mysql_pconnect的区别,有需要了解...2016-11-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • C#中out与ref的区别实例解析

    这篇文章主要介绍了C#中out与ref的区别实例解析,对C#初学者有不错的学习借鉴价值,需要的朋友可以参考下...2020-06-25
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • 谈谈Jquery中的children find 的区别有哪些

    精华:find方法能找子孙,children方法只能找儿子一、Jquery中children 语法.children(selector) 说明expr是表达式,可选参数,所有选择器中的表达式都可以用在这,比如按标签名"div",按类名".class",按序号":first"等等,如果表...2015-10-21
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • PS中像素大小、文档大小的区别

    在PS中像素大小、文档大小有什么区别呢,这个估计很多初学者不清楚,下面我来给大家讲解一下,希望对你有帮助。 1、像素大小 通常用于显示屏显示的图片大小的调整。菜...2016-09-14
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • SpringBoot2.x中management.security.enabled=false无效的解决

    这篇文章主要介绍了SpringBoot2.x中management.security.enabled=false无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-23
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • C#中sleep和wait的区别分析

    这篇文章主要介绍了C#中sleep和wait的区别分析,有助于深入理解C#中线程的原理与使用技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • uniapp和vue的区别详解

    这篇文章主要介绍了uniapp和vue的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-10-19
  • PHP如何使用cURL实现Get和Post请求

    这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
  • 谈谈PHP中相对路径的问题与绝对路径的使用

    经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24