注册 登录
编程论坛 PHP技术论坛

求帮忙解释语法

theend12 发布于 2010-09-20 16:44, 843 次点击
if (!$action || $action == 'file') {
    $dir_writeable = @is_writable($nowpath) ? 'Writable' : 'Non-writable';
    if ($doing == 'deldir' && $thefile) {

求帮忙解释这3条语句
第一条 :! || 我知道是  逻辑非 逻辑或?但我没有什么编程基础 一直都是自学 对这种逻辑关系实在不知道如何运算
第二条:? : 是怎么回事?虽然我心里明白这个意思,是可写就输出Writable,不可写就输出Non-writable
第三条: && 两个& 又是什么意思?

为什么我看的视频教程都不会提到这些东西,可是看别人写的代码好多这种我认为非常规的代码,导致连一般的语法都看不懂了。
3 回复
#2
gupiao1752010-09-20 20:31
我对PHP不太了解,但是感觉其语言和C类语言的差不多,我试着给你解释一下!一句对一行!
if (!$action || $action == 'file') {
//PHP变量都是$开头的,判断变量$action是否存在,如果不存在返回false,否则是true,由于其前面加!取反操作,那么不存在的话,!$action的结果就是true,其后是||运算符号,只要前面是true即不继续向后面计算(也就是说当变量$action不存在的时候,$action=='file'将不被执行了),直接计算if挎号里的语句!如果$action不存在的话返回false,将继续向后执行||$action=='file',判断它是否等于file,如果它不为file,那么if里的语句将不被执行!否则执行!
    $dir_writeable = @is_writable($nowpath) ? 'Writable' : 'Non-writable';
//@is_writable我不知道它的用途是什么,但是字面上看应该是判断是否可读写的,其后是一个条件运算符,这个?:
条件(三目)运算符 (?:)test ? 语句1 : 语句2,在这里的作用是判断@is_writable($nowpath),$nowpath这个变量的可读性,返回一个布尔值,如果为true就执行$dir_writeable='writable',如果为false就执行$dir_writeable='Non-writable',说白了就是给一个变量赋予一个字符串,这里需要说明一点PHP函数前的@is_writable,@的意思是容错,即使出错也不提示,但是PHP最新版本里并不推荐这样使用!
    if ($doing == 'deldir' && $thefile) {
//在PHP里没有&,只有&&,它就是一个逻辑与的意思,跟第一句的||逻辑或相附相成,具体什么意思,自己百度了!
这里我想你应该可以自己理解了。说了这么多。我也不知道你能否理解了!
#3
asmdaydream2010-09-21 09:19
lz还是先看本基础教程再看代码吧,磨刀不误砍柴功
#4
theend122010-09-22 09:47
回复 2楼 gupiao175
十分感谢!!!
1