php中运算符基本介绍

 更新时间:2016年11月25日 15:04  点击:1323
在php中我们常用的运算符包括有算数运算符、赋值运算符、比较运算符、逻辑运算符 等等下面我来给各位朋友介绍用法。
除法运算符总是返回浮点数。只有在下列情况例外:两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时它返回一个整数。
取模运算符的操作数在运算之前都会转换成整数(除去小数部分)。
Note: 取模 $a % $b 在 $a 为负值时的结果也是负值。
例:


 代码如下
复制代码



<?php
/* tested under PHP 5.2.6-1 with Suhosin-Patch 0.9.6.2 (cli) on both i386 and amd64, Debian lenny/sid */
$a = 2863311530;
$b = 256;
$c = $a % $b;
echo "$c <br />n";
echo (2863311530 % 256)." <br />n"; /* directly with no variables, just to be sure */
?>







运算符
说明
例子
结果


+
Addition
x=2
x+2
4


-
Subtraction
x=2
5-x
3


*
Multiplication
x=4
x*5
20


/
Division
15/5
5/2
3
2.5


%
Modulus (division remainder)
5%2
10%8
10%2
1
2
0


++
Increment
x=5
x++
x=6


--
Decrement
x=5
x--
x=4




赋值运算符
基本的赋值运算符是“=”。一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。
赋值运算表达式的值也就是所赋的值。也就是说,“$a = 3”的值是 3。这样就可以做一些小技巧:


 代码如下
复制代码



<?php
$a = ($b = 4) + 5; // $a 现在成了 9,而 $b 成了 4。
?>



在基本赋值运算符之外,还有适合于所有二元算术,数组集合和字符串运算符的“组合运算符”,这样可以在一个表达式中使用它的值并把表达式的结果赋给它,例如:


 代码如下
复制代码



<?php
$a = 3;
$a += 5; // sets $a to 8, as if we had said: $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!";
?>



注意赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。这也适合于在很密集的循环中拷贝一些值例如大数组。也可以使用引用赋值,用 $var = &$othervar; 语法。引用赋值意味着两个变量都指向同一个数据,没有任何数据的拷贝。有关引用的更多信息见引用的说明。在 PHP 5中,对象总是通过引用赋值的,除非明确使用新的 clone关键字




运算符
说明
例子


=
x=y
x=y


+=
x+=y
x=x+y


-=
x-=y
x=x-y


*=
x*=y
x=x*y


/=
x/=y
x=x/y


.=
x.=y
x=x.y


%=
x%=y
x=x%y




比较运算符
比较运算符,如同它们名称所暗示的,允许对两个值进行比较。如果比较一个整数和字符串,则字符串会被转换为整数。如果比较两个数字字符串,则作为整数比较。此规则也适用于 switch 语句。


 代码如下
复制代码



<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("1" == "1e0"); // 1 == 1 -> true
switch ("a") {
case 0:
    echo "0";
    break;
case "a": // never reached because "a" is already matched with 0
    echo "a";
    break;
}
?>







运算符
说明
例子


==
is equal to
5==8 returns false


!=
is not equal
5!=8 returns true


>
is greater than
5>8 returns false


<
is less than
5<8 returns true


>=
is greater than or equal to
5>=8 returns false


<=
is less than or equal to
5<=8 returns true




逻辑运算符
“与”和“或”有两种不同形式运算符的原因是它们运算的优先级不同(见运算符优先级)。
Example #1 逻辑运算符示例


 代码如下
复制代码



<?php
// 下面的 foo() 不会被调用,因为它们被运算符“短路”了。
$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());
// "||" 的优先级比 "or" 高
$e = false || true; // $e 被赋值为 (false || true),结果为 true
$f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高]
var_dump($e, $f);
// "&&" 的优先级比 "and" 高
$g = true && false; // $g 被赋值为 (true && false),结果为 false
$h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高]
var_dump($g, $h);
?>
以上例程的输出类似于:
bool(true)
bool(false)
bool(false)
bool(true)







运算符
说明
例子


&&
and
x=6
y=3
(x < 10 && y > 1) returns true



||
or
x=6
y=3
(x==5 || y==5) returns false



!
not
x=6
y=3
!(x==y) returns true






一个简单的php分割字符串并循环输出 学习笔记本大家可参考参考。

例子一

 代码如下 复制代码
<?php
$test='472347127,893372115,850965403';
$r=explode(",",$test);
for($i=0;$i<sizeof($r);$i++)
{ echo $i.".". $r[$i].""; }
?>

输出: 0.472347127 1.893372115 2.850965403

例子二

 代码如下 复制代码
<?php
$a="893372115,472347127,850965403" ;
$b=explode(",",$a);
foreach($b as $bb)
{ echo $bb.""; //print_r($b); }
?>

输出: 893372115 472347127 850965403 PHP
循环读取数组变量值,类似ASP里的Split用法

在判断某个 PHP 数组的索引值是否存在,一般会使用 isset 和 array_key_exists 两种方法,但是两者返回的值会有不同,下面我来介绍isset 和 array_key_exists 区别,有需要的朋友可参考。

先来看个简单的例子

 代码如下 复制代码

isset($a['key'])
array_key_exists('key', $a)array_key_exists

确切地告诉你,数组是否存在某个键,而 isset 则只是返回键值是否为 null 的状态。

isset函数是检测变量是否设置。

格式:bool isset ( mixed var [, mixed var [, ...]] )

返回值:

1.若变量不存在则返回 FALSE
2.若变量存在且其值为NULL,也返回 FALSE
3.若变量存在且值不为NULL,则返回 TURE
4.同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE


例1

 代码如下 复制代码

$a = array('key1' => '123', 'key2' => null);

使用这两个方法判断键值存在情况,结果如下:

 代码如下 复制代码

isset($a['key1']);             // true
array_key_exists('key1', $a);  // true

isset($a['key2']);             // false
array_key_exists('key2', $a);  // true

例2

 代码如下 复制代码

<?php

$a = array ('test' => 1, 'hello' => NULL);

var_dump( isset ($a['test') ); // TRUE
var_dump( isset ($a['foo') ); // FALSE
var_dump( isset ($a['hello') ); // FALSE

// 'hello' 等于 NULL,所以被认为是未赋值的。
// 如果想检测 NULL 键值,可以试试下边的方法。
var_dump( array_key_exists('hello', $a) ); // TRUE

?>

cookie是发送在浏览器端一个小小的文件,可用来记录用户操作过的记录,如访问了那些文件等

 

写入cookie

 代码如下 复制代码

setcookie(name, value, expire, path, domain);

function w_cookie($n, $c, $e = 0,$isdes=1)
 {
   if($isdes==1){$c=endes($c,deskey);}
      $exp = time() + 3600 * 24 * 30;
      if($e == 0)
     {
          setcookie($n, $c, $exp,"/");
     }
     else
     {
      setcookie($n, $c,0,"/");
      }
 }

 
关闭cookie方法就是把它设置过期即可。


例1

写cookie

 代码如下 复制代码

function cookie($var, $value='', $time=0, $path='', $domain=''){
$_COOKIE[$var] = $value;
  if(is_array($value)){
      foreach($value as $k=>$v){
        setcookie($var.'['.$k.']', $v, $time, $path, $domain, $s);
      }
  }else{
        setcookie($var, $value, $time, $path, $domain, $s);
  }
}
 
//调用方法
 
cookie("website","安卓主题","./","www.111cn.net");
//

例2

防止重复提交

 代码如下 复制代码

$time = time() + 300;    //5分钟过期
$code = md5($string . $time . $salt);
setcookie('check_time', $time);
setcookie('code', $code);

//验证部分
$TIME = time();
if($check_time < $TIME)//如果服务器时间比验证时间大,算过期
    //expire过期
   
if(md5($string . $check_time . $salt) !== $code)

更多关于php cookie用法可参考:http://www.111cn.net/tags.php/php%20cookie/

本文章来简单的介绍METHOD的用法,这在php5之后才会有的魔术常量,有需要的朋友可参考。

__METHOD__ 是PHP5之后新增的魔术常量,表示的是类文法的名称

 代码如下 复制代码

<?php
class chhua{
 function test(){
  echo __METHOD__;
 }
}
 
$e=new chhua();
 
$e->test();//输出:chhua::test


还有更多的此类函数,如有__isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(),

__set_state() and __clone()这里就不介绍了大家可百度搜索。

[!--infotagslink--]

相关文章

  • 源码分析系列之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
  • 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
  • c#的异或运算符介绍

    这篇文章介绍了c#的异或运算符,有需要的朋友可以参考一下...2020-06-25
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • 轻松学习C#的运算符

    轻松学习C#的运算符,对C#的运算符感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的运算符。...2020-06-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • C#中38个常用运算符的优先级的划分和理解

    这只我自己在学C#中的一些总结,其中对于各级的划分方式、各操作符的优先级的理解并不见得正确,只是自己的看法,拿出来与大家分享...2020-06-25
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • R语言运算符知识点讲解

    在本篇文章里小编给大家分享了一篇关于R语言运算符知识点讲解内容,有兴趣的朋友们可以参考下。...2021-05-06
  • 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
  • C++编程中的或||、与&&、非!逻辑运算符基本用法整理

    这篇文章主要介绍了C++中的或||、与&&、非!逻辑运算符基本用法整理,是C++入门学习中的基础知识,需要的朋友可以参考下...2020-04-25
  • JS不要再到处使用绝对等于运算符了

    这篇文章主要介绍了JS不要再到处使用绝对等于运算符了,对此感兴趣的同学,可以参考下...2021-05-01
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • PHP如何使用cURL实现Get和Post请求

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

    经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
  • C#编程自学之运算符和表达式

    这篇文章主要介绍了C#运算符和表达式,这是自学C#编程的第五篇,希望对大家的学习有所帮助。...2020-06-25