php 符号不进行转义,不可不知的PHP符号转义 - Discuz!-安装使用 - Discuz! 官方站 - Powered by Discuz!...

943465bc9b08547e087cce7b4d49def5.png本帖最后由 qsnxxzx 于 2008-11-12 17:15 编辑

注解符号:

// 单行注解

/*     */   多行注解

引号的使用

'  ' 单引号,没有任何意义,不经任何处理直接拿过来;

" "双引号,php动态处理然后输出,一般用于变数.

变数形态:

一种是True 即 真的;

另一种是False 即假的

常见变数形态:

string         字串(数字\汉字\等等)

integer        整数(1、2、3、4、5、0、-1、-2、等等)

double         浮点数(小数点)

array          阵列

object         物件

常用符号

\"        双引号

\\        反斜线

\n        换行

\r        送出

\t        跳位(TAB)

运算符号

+      加法运算             -      减法运算

*      乘法运算             /      除法运算

%      取余数               ++    累加

--     累减1                .     把字串相加

设定运算

=        把右边的值代入左边(一定要会)

+=      把右边的值加到左边

-=       把右边的值减到左边

*=       把左边的值乘以右边

/=       把左边的值除以右边

.=       把右边的字串加到左边

位员运算

&        且

|          或

^        互斥(xor)

<

>>     向右移位

~        取1的补数

逻辑运算

      大于

<=    小于等于             >=     大于等于

!=      不等于             &&     而且

||        或者             !     不

其他运算符号

$        变数符号

&       变数的指标(加在变数前)

@      不显示错误信息(加在函数前)

->       物件的方法或者属性

=>      阵列的元素值

? :      三元运算子

运算符号可以用来处理数字、字符串及其它需要比较运算的条件。PHP 的运算符号和 C 语言的运算符号与很类似,对于有经验的程序设计人员,应可以很顺利的掌握 PHP 的运算符号。

不同的运算符号,其实还是有优先顺序,就像小时候在学数学时,老师会教:先乘除、后加减。在 PHP 的运算优先顺序可以参考下面的表格,在混合式的情形下,愈往下表示优先权愈高。至于符号代表的意义,散见于以下的章节中。

运算符号        结合规则

,        左至右

or        左至右

xor        左至右

and        左至右

.=     &=     |=     /=     %=     ^=     =     +=     -=     *=        左至右

?    :        左至右

||        左至右

&&        左至右

|        左至右

^        左至右

&        左至右

==     !=        不限

=     >        不限

<>        左至右

+     -     .        左至右

*     /     %        左至右

!     ~     ++     --     @        右至左

[]        右至左

就像先哲说的�:物有本末、事有终始,知所先后,则近道矣,在运算时只要照着运算优先顺序写出来的程序,应该不会发生结果和预期不同的情形。在写作时多注意细节,可以减少调试的痛苦!

0

顶一下

相关文章         关于 PHP运算符号列表

今天说下在写php代码中的运算符、特殊的一些符号以及需要注意的细节。

先说运算符,其实手册里已经讲的很详细了,不会看手册?在第二天的教程里就给了大家一个手册的下载,那教下手册使用技巧吧。

打开php手册,你会看到左边的菜单上有4个标签:目录、索引、搜索、书签

目录就是手册的帮助目录,已经分类好了,如过你要看运算符相关的内容,就依次打开:语言参考 > 运算符

索引就是手册所有内容的关键字的列表,可以方便的找到你要的帮助,比如你要找substr这个函数做什么用的,就输入sub,看到没?马上就定位到substr所在的行,然后双击就能看到substr的帮助了

搜索就是搜索索引里不好找的内容,比如你要找__FILE__,就输入__FILE__,然后点列出主题,就会找到相关的帮助了,一般最接近的结果都会在第一个,双击打开,看到没?__FILE__的作用了?

书签自己研究吧。。。我发现我到底是教php啊还是教这个帮助文件怎么用。。。难道你很笨。。。

好了,转入正题,先说运算符,运算符有很多,具体可以看手册,我这里说些常用的,其他只会简单介绍下,以后有看到会知道是运算符就好。

运算符又分为下面几种:

赋值运算符

算数运算符

比较运算符

逻辑运算符

字符串运算符

位运算符

还有些在手册里被称为运算符的运算符。。。因为我怎么觉得都不是,哈哈

先说赋值运算符,就是=,很简单吧,以前经常出现,我都没解释过的东西,就是把某个值赋值给一个变量,让变量的值为=右边的值

接着就是算数运算符,+、-、*、/、%,+、-、*、/就不用说了吧,就是加、减、乘、除,这个要是不会。。。那我死了算了。%不知道是啥了吧,在编程里叫取模,其实就是余数,比如$a = 3 % 2;那么$a的值就是1,就是3除以2的余数,另外一个注意的地方就是这几个运算符都可以和=一起用,之前有出现过哦,如+=、-=、*=、/=、%=具体结果嘛,自己动手咯。另外还有++、--的用法在上一次的循环教学中说了,当时注意下$a++和++$a的区别,例子后面举。还有个要注意下,这些只能用在数字的运算上,不能把两个字符串相加啥的,你要相加?那自己试试相加结果吧。。。有个特殊情况,就是+可以用在数组上,之前在说数组的时候已经说过了。

再接着就是比较运算符,==、===、!=、<>、!==、、<=、>=,之前在说流程控制的条件时说过了,但是忘记说<>了,和!=的意思是一样的,例子就不举了

再再接着就是逻辑运算符,and、or、&&、||、!、xor,这里说下and和&&一个意思,or和||一个意思, !就是用在!$a这种情况时。xor比较特殊这个就看下例子吧

D:\GBMad.net\web\and.php(http://localhost/and.php)

$A = 1;

echo($A++ . '
');

echo($A . '
');

$A = 1;

echo(--$A . '
');

echo($A . '
');

//上面是$A++和++$A的区别,当然--也是一样的效果,自己可以动手试试

$a = true;

$b = true;

$c = false;

$d = false;

if ($a && $b) { //这里意思是要$a和$b都为真的时候。可以不用&&,用and也是可以的:if ($a and $b),当然习惯上用&&,为啥?因为比较好看啊,and毕竟是英文,不利于在一眼扫过去的时候看清楚

echo('$a和$b都是true
');

}

if ($a || $c) { //这里意思是$a或者$c为真的时候,当然像上面一样也可以不用||,可以用or:if ($a or $c),当然一样推荐用||

echo('$a或者$c为true
');

}

if ($b xor $c) { //$b和$c中必须一个为true,一个为false才算满足条件

echo('$b和$c中一个为true,一个为false
');

}

//下面演示几个复杂的例子,认真理解,这个很重要,因为逻辑判断每个程序都需要的。另外注意()的使用

if ($a && $b && (! $c || $d) && ($c || ($a && ! $d))) {

echo('true
');

} else {

echo('false
');

}

?>

结果:

Quote

1

2

2

2

$a和$b都是true

$a或者$c为true

$b和$c中一个为true,一个为false

true

还有就是字符串运算符,就是.了,以前说过了,可以这样使用$a = $a . $a;或者$a .= $a;,以前说过了,具体也不说了

终于到最后一个位运算符了。。。说实在,如果还有,我都不知道该用什么词来表达了,总不能是再再再接着吧,哈哈。位运算符理解下就好,我写这么就久程序都很少用到这些。位运算符:&、|、^、~、<>这几个,说到位运算就要说到二进制,二进制就是由0和1来表示的数字,我们平时说的0-9组成的数字叫做十进制。在php中可以用decbin把十进制转为二进制,如果是字符的话会先转为ASCII值后再转为二进制。位运算就是对二进制进行与或操作或进行位移。具体的每个符号的意思可以看手册,我就不说了,只举个简单例子(按位与的运算):

01100001 //第一个数字

10100011 //第二个数字

00100001 //按位与的运算结果,就是把相同位置中都为1的值在结果中的位置也为1,在第一和第二行的数字中,只有第3位和第8位数字都为1,所以结果中第3位和第8位的值就是1,其他都为0

好了,运算符都说完了。。。还有些特殊符号以前说过了:{}、()、[],具体意思不懂?那好好看以前的教程吧。。。还有就是$,不用说是什么意思吧。还有个@和&在以后也会遇到,这里说下@表示@符号后的语句如果有错误会忽略,不会提示,如$a = @$b['a'];,因为php运行时会有些错误,以前的例子中有出现吧,一些提醒的错误,如果用@那么这条语句有错误的也不会有提示。一会看例子。&除了位运算符的意义外还有引用的意思,都用在变量的前面如$a =& $b;,或者用在函数的参数中,在看手册时你可能会看到的如:bool sort ( array &array [, int sort_flags] ),&array,就是表示这个参数是被引用的。那么引用是什么意思呢?看例子,好好理解

D:\GBMad.net\web\operator.php(http://localhost/operator.php)

$b = array();

$a = $b['a']; //注意这三句的区别,这一行会有个错误提示,因为不存在a这个key。

@$a = $b['a']; //忽略@后面语句的错误

$a = @$b['a']; //忽略@后面语句的错误,推荐使用这句。因为错误是在$b这个数组中发生的,所以@符号在$b前就可以了,这是错误真正发生的地方

$a = 1;

$b =& $a;

$a = 2;

echo($b . '
');

$b = 3;

echo($a);

//引用是指两个变量同时指向了一个地方,如果这个地方变量,那么两个变量所对应的东西就会一起变了。明白了?

?>

结果:

Quote

Notice: Undefined index: b in D:\GBMad.net\web\operator.php on line 3

2

3

好了,最后说点细节的东西,可能你觉得不重要,但是以后你就知道原来这是一种好习惯,在未来很有帮助,特别是在代码的阅读上。

1、php虽然可以不用声明变量,但是在使用一个变量前最好先初始化一个这个变量将要使用类型的值,如$a = 0;表示初始化一个整数,$b = '';表示$b是一个字符串,$c = array();表示$c是一个数组…………等等。当然如果有默认值直接使用默认值就好了:$a = 86400;。想知道好处?以后会体会到的,也说不定你一直体会不到,因为你的可能永远碰不到因为这些导致的奇怪问题。

2、使用空格,方便查看阅读代码,比如变量和符号之间,如$a = 100;,在=的左右两边都留个空格,还如 if ($a && $b) {},看到没,if和{之间,&&符号的左右两边,)和{之间,那你可能会问(和$a之间怎么没有空格呢,因为我觉得($a比( $a好看,哈哈,其实另一个方面是大家的习惯,我见到的大部分代码都是没有留有空格的。。。当然你如果觉得( $a这样看起来比较舒服那我也没办法。

3、在流程中{}的位置,{总是在流程语句开始的那行的结尾,而}是另起一行或者在另一个搭配语句的开始前。如下,看清楚{}的位置哦。

$a = true;

if ($a) {

echo(1);

} else {

echo(0);

}

?>

4、对字符串操作使用'而不是",'需要转义的字符只有2个,就是'和\,而"有很多,而且还有字符串解析的功能,这里推荐大家不要懒,需要用到变量的都用.来连接,在没有非要用到"的地方都不用,因为"没有'的效率高……例子:

$a = 'a';

$b = $a . 'b

\'c'; //这里换行咯,$b对应的值也包括这个换行哦

?>

5、数组中使用key时如果是key字符串都使用',如$a['a'];而不要使用$a[a]。

6、不要多条语句写在同一行,每个;后都能跟上换行,如不要写成$a = 1; $b = 2; $c = 3;这样,因为这样写不利于阅读代码。当然这里有个特例,就是for语句,因为for语句总是类似这样:for ($i = 0; $i < 100; $i++)

7、每个流程间都使用缩进,一般上都是使用键盘上的Tab键,当然也有人用多个空格。关于使用Tab还是空格的优略,各有各的看法,我是喜欢使用Tab键,然后在编辑器中定义为和3个空格一样的宽度。显示出来和3个空格的缩进是一样的效果。因为这个Blog的原因,前面你们看到的代码好像都只有1个空格,其实上都是3个空格,而且每个流程间都有很好的缩进,我截个图给大家看:

8、使用好(),运算符都有个优先级,就像四则运算一样,1 + 2 * 3是先2 * 3然后和1相加,其实也最好写成1 + (2 * 3)这样一眼就能看出来先后顺序,方便阅读,不需要大脑有过多的思考。所以呢,如有遇到比较复杂的运算或比较的时候适当的使用(),就像今天的例子中的if ($a && $b && (! $c || $d) && ($c || ($a && ! $d)))

9、啊,忘了还有啥了,以后有想到了在这补上,哈哈,要记得有空来翻翻哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值