当前位置:  编程技术>php
本页文章导读:
    ▪php empty()与isset()函数区别分析      empty判断一个变量是否为“空”,isset()判断一个变量是否已经设置。 当一个变量值等于0时,empty()也会成立(True),因而会发生一些意外。 原来,empty() 和 isset() 虽然都是变量处理函数,它.........
    ▪dateadd() datediff()函数的php实现代码      php实现dateadd()与datediff()函数的代码。 代码示例: <?php //文件名:date.inc.php3 //在使用这两个函数前,要先将日期或日期时间转换成timestamp类型。 //如: //$today=mktime(0,0,0,date("m"),date("d"),date.........
    ▪php运算符及运算符优先级-php入门教程(4)      一、首先,来看php中运算符的分类 1、按照所需要的参数数目来划分,有单目运算符、双目运算符和三目算符。 如-(负号)就是单目运算符; 而+(加法)则是一个双目运算符。 2、按照其功能来.........

[1]php empty()与isset()函数区别分析
    来源: 互联网  发布时间: 2013-12-24

empty判断一个变量是否为“空”,isset()判断一个变量是否已经设置。

当一个变量值等于0时,empty()也会成立(True),因而会发生一些意外。
原来,empty() 和 isset() 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别:empty还会检测变量是否为空、为零。
当一个变量值为0,empty() 认为这个变量同等于空,即相当于没有设置。

比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:
 

代码示例:
$id=0;
empty($id)?print "It's empty .":print "It's $id .";
//结果:It's empty .
print "<br>";
!isset($id)?print "It's empty .":print "It's $id .";
//结果:It's 0 .

这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty() 要小心,这个时候用 isset 取代它更明智一些。

当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:
 

代码示例:
if(empty($id)) $id=1; - 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1

可分开运行以下代码检测上述推断:
 

代码示例:

 if(empty($id)) $id=1;
    print $id; // 得到 1

    if(!isset($id)) $id=1;
    print $id; //得到 0

其共同点就是empty()和isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们的关系认识不足。单从empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理对象无外乎未定义变量,0,空字符串。
如果变量为0,则empty()会返回TRUE,isset()会返回TRUE;

如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE;

如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE;

手册中对empty()的解释如下:
描述bool empty( mixed var )
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

手册中对isset()的解释如下:
isset()检测变量是否设置
描述bool isset ( mixed var [, mixed var [, ...]] )
如果 var 存在则返回 TRUE,否则返回 FALSE。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。

警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。
当要 判断一个变量是否已经声明的时候 可以使用 isset 函数。
当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数。
当要 判断 一个变量 存在且不为空 先isset 函数 再用 empty 函数。

看了以上的介绍,你对这二个函数,是否有了更加清晰的认识呢?
,祝大家学习进步哦。


    
[2]dateadd() datediff()函数的php实现代码
    来源: 互联网  发布时间: 2013-12-24

php实现dateadd()与datediff()函数的代码。

代码示例:

<?php
//文件名:date.inc.php3
//在使用这两个函数前,要先将日期或日期时间转换成timestamp类型。
//如:
//$today=mktime(0,0,0,date("m"),date("d"),date("Y"));
//by www.

/****模拟sqlserver中的dateadd函数*******
$part 类型:string
取值范围:year,month,day,hour,min,sec
表示:要增加的日期的哪个部分
$n 类型:数值
表示:要增加多少,根据$part决定增加哪个部分
可为负数
$datetime类型:timestamp
表示:增加的基数
返回 类型:timestamp
**************结束**************/
function dateadd($part,$n,$datetime){
$year=date("Y",$datetime);
$month=date("m",$datetime);
$day=date("d",$datetime);
$hour=date("H",$datetime);
$min=date("i",$datetime);
$sec=date("s",$datetime);
$part=strtolower()($part);
$ret=0;
switch ($part) {
case "year":
$year+=$n;
break;
case "month":
$month+=$n;
break;
case "day":
$day+=$n;
break;
case "hour":
$hour+=$n;
break;
case "min":
$min+=$n;
break;
case "sec":
$sec+=$n;
break;
default:
return $ret;
break;
}
$ret=mktime($hour,$min,$sec,$month,$day,$year);
return $ret;
}

/****模拟sqlserver中的datediff函数*******
$part 类型:string
取值范围:year,month,day,hour,min,sec
表示:要增加的日期的哪个部分
$date1,$date2 类型:timestamp
表示:要比较的两个日期
返回 类型:数值
**************结束*(*************/
function datediff($part,$date1,$date2){
//$diff=$date2-$date1;
$year1=date("Y",$date1);
$year2=date("Y",$date2);
$month2=date("m",$date2);
$month1=date("m",$date1);
$day2=date("d",$date2);
$day1=date("d",$date1);
$hour2=date("d",$date2);
$hour1=date("d",$date1);
$min2=date("i",$date2);
$min1=date("i",$date1);
$sec2=date("s",$date2);
$sec1=date("s",$date1);

$part=strtolower($part);
$ret=0;
switch ($part) {
case "year":
$ret=$year2-$year1;
break;
case "month":
$ret=($year2-$year1)*12+$month2-$month1;
break;
case "day":
$ret=(mktime(0,0,0,$month2,$day2,$year2)-mktime(0,0,0,$month1,$day1,$year1))/(3600*24);
break;
case "hour":
$ret=(mktime($hour2,0,0,$month2,$day2,$year2)-mktime($hour1,0,0,$month1,$day1,$year1))/3600;
break;
case "min":
$ret=(mktime($hour2,$min2,0,$month2,$day2,$year2)-mktime($hour1,$min1,0,$month1,$day1,$year1))/60;
break;
case "sec":
$ret=$date2-$date1;
break;
default:
return $ret;
break;
}
return $ret;
}
?>


    
[3]php运算符及运算符优先级-php入门教程(4)
    来源: 互联网  发布时间: 2013-12-24

一、首先,来看php中运算符的分类
1、按照所需要的参数数目来划分,有单目运算符、双目运算符和三目算符。
如-(负号)就是单目运算符;
而+(加法)则是一个双目运算符。

2、按照其功能来划分,有算术运算符、赋值运算符、位运算符等。
这几种是php编程中最常用的运算符。

二、运算符介绍

1、算术运算符
运算符 名称 结果
$a + $b 加法 $a 和 $b 的和
$a - $b 减法 $a 和 $b 的差
$a * $b 乘法 $a 和 $b 的积
$a / $b 除法 $a 除以 $b 的商
$a % $b 取模 $a 除以 $b 的余数

2、递增/递减运算符
运算符 名称 结果
++$a  前加   $a 的值加一,然后进行操作
$a++ 后加   $a 的值先进行操作,后加一
--$a   前减   $a 的值减一,然后进行操作
$a--   后减   $a 的值先进行操作,后减一
示例:
 

3、比较运算符
运算符 名称 结果
$a == $b 等于 TRUE,如果$a等于$b
$a === $b 全等 TRUE,如果$a等于$b,并且它们的类型也相同
$a != $b 不等 TRUE,如果$a不等于$b
$a <> $b 不等 TRUE,如果$a不等于$b
$a !== $b 非全等 TRUE,如果$a不等于$b,或者它们的类型不同
$a < $b 小于 TRUE,如果$a严格小于$b
$a > $b 大于 TRUE,如果$a严格$b
$a <= $b 小于等于 TRUE,如果 $a 小于或等于$b
$a >= $b 大于等于 TRUE,如果 $a 大于或等于$b
另外一个条件运算符是“ ? : ”(或三元)运算符。

例子:
 

4、逻辑运算符
运算符 名称 结果
$a and $b 逻辑与 TRUE,如果 $a 与 $b 都为 TRUE。
$a or $b 逻辑或 TRUE,如果 $a 或 $b 任一为TRUE。
$a xor $b 异或 TRUE,如果 $a 和 $b 不同时
! $a 逻辑非 TRUE,如果 $a 不为 TRUE。
$a && $b 逻辑与 TRUE,如果 $a 与 $b 都为TRUE。
$a || $b 逻辑或 TRUE,如果 $a 或 $b 任一为TRUE。

其中and与&& 、or与||是同一逻辑运算符的两种写法。
逻辑与和逻辑或 都是短路运算符。在遇到下列逻辑表达式时,PHP解释程序将不会计算右边的表达式:
例子:
 

5、位运算符
位运算符允许对整型数中指定的位进行置位。如果左右参数都是字符串,则位运算符将操作字符的 ASCII 值。
表达式 名称 结果
$a & $b 按位与 将把 $a 和 $b 中都为 1 的位设为 1。
$a | $b 按位或 将把 $a 或者 $b 中为 1 的位设为 1。
$a ^ $b 按位异或 将把 $a 和 $b 中不同的位设为 1。
~ $a 按位非 将 $a 中为 0 的位设为 1,反之亦然。
$a << $b 左移 将 $a 中的位向左移动 $b 次(每一次 移动都表示“乘以 2”)。
$a >> $b 右移 将 $a 中的位向右移动 $b 次(每一次 移动都表示“除以 2”)。

6、其他运算符

字符串运算符
有两个字符串运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数后。

错误抑制操作符
在最常见的数据库连接与文件创建操作或出现除0等异常时,可以用@符号来抑制函数错误信息输出到浏览器端 $a=@(5/0)

外部命令执行
使用``来运行外部系统命令,注意不是单引号,是ESC下面那个按键
例子:
 

三、运算符优先级
以上是从低到高列出的php运算符的优先级。
结合方向 运算符
左 ,
左 or
左 xor
左 and
右 print
右 = += -= *= /= .= %= &= |= ^= ~= <<= >>=
左 ? :
左 ||
左 &&
结合方向 运算符
左 |
左 ^
左 &
无 == != === !==
无 < <= > >=
左 << >>
左 + - .
左 * / %
右 ! ~ ++ -- (int) (float) (string) (array) (object) @
右 [
无 new

php 运算符在日常的开发中,无处不在,建议大家牢固掌握。
今天的内容,就讲到这里了,祝大家学习进步。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3