PHP -- 运算和结构

\color{rgba(254, 67, 101, .8)}{小数取模:}
\color{rgba(3, 101, 100, .8)}{小数会被先取整,再取模}

$a = 8.5%3.2;
    echo $a;  // 2

$a = 8.5%-3.2;
    echo $a; // 2

$a = -8.5%3.2;
    echo $a; // -2

$a = -8.5%-3.2;
    echo $a;  // -2
取模:前面是正,结果就是正,前面是负,结果就是负
8是被除数,  3是除数, 被除数影响结果的正负

image.png

\color{rgba(254, 67, 101, .8)}{在JS中,小数取模返回值是小数}

var a = 8.5%3.2;
   alert(a);

a++ 和 ++a :

$a = 10;
    $b = $a++;//$b = $a; $a = $a + 1;
    echo $a,'|',$b;

    //值为:  11|10
从左往右运算的,先有/$b = $a;后有的$a = $a + 1;


    $a = 10;
    $b = ++$a;//$a + 1 = $a; $b = $a;
    echo $a,'|',$b;

    //值为:  11|11
  

赋值运算:

=
+= a = 10 ;a = a + 10;a = 20;
-=
*=
/=
.= 点等于,用于字符串连接,必须前后都是字符串才可以

$name = '张三';
    $welcome = '欢迎';
    $str =  $welcome . $name;
    echo $str;

点等与用于连接字符串:


image.png

\color{rgba(254, 67, 101, .8)}{条件运算:}

条件运算:
>
<
>=
<=
==
=== 全等(类型和值全部相等)
!= 不等
!== 不全等(类型和值,只要有一个不相等,就为true)

$a = 10;
    $b = '10';
    var_dump($a == $b);
    //var_dump();输出所有类型的值
//两个等号的:会先自动转换成一样的类型,再比较是否相等
返回值:  true


$a = 10;
$b = '10abc';
 var_dump($a === $b);
返回值:  false
这个函数会把前面的整数部分提取出来,后面无论是小数还是字符串,一概舍弃,只取整数
$b = 'abc10';
 var_dump($b);
返回值:  0
如果没有取到数字,就会返回0
JS里就会返回 NaN

取整:


$b = '10';
$c = intval($b);
var_dump($c);

返回值;


image.png

取浮点数:


$b = '10.25';
$c = floatval($b);
var_dump($c);
image.png

强制类型转换:

$b = '10.25abc';
    $c = (int)$b;
    var_dump($c);
image.png

$settype();用于设置变量的类型。
成功返回true,失败返回false

$b = '10.2a';
    $c = settype($b, 'int');

    var_dump($c);
    var_dump($b);

返回值:


image.png

逻辑运算:
逻辑与: $$ and 都可以
逻辑或: || or 都可以
逻辑非: !
逻辑亦或 ^ xor 都可以(相同为假,不同为真)

逻辑与:

$a = '无房';
    $b = '有车';

    if($a == '有房' && $b == '有车'){
        echo '可以结婚';
    }else{
        echo '不可以结婚';
    }
image.png

逻辑与是有短路问题的,只要有一个条件判断为false,就为false
只要条件判断为false,就不再执行之后的条件判断,这就是短路。

示例:

$a = 5;
    $b = 4;

    if($a++ > 5 && $b++ > 3){
        echo '#####<br/>';
    }
    echo  $a,'|', $b;
    //$a++ > 5可以这样写  $c = $a++; $c > 5
    //$c =$a, $a= $a + 1 
    //此时$c = 5;  $a++ = 6  
    //因为先有$c =$a=5,后有$a= $a + 1 ,$a = 5 + 1 = 6所以第一个条件不满足
    //虽然第二个条件满足,但是and运算只要第一个条件为false,就不会再计算第二个条件,所以$b还是4,所以第一个条件#####不会输出,
    //第二个echo的结果:$a,'|', $b;结果是  6 | 4

image.png

逻辑或:
有一个条件判断为true,结果就是true
只要出现条件为true的表达式,就直接输出结果了,后面的表达式不执行,因为结果已经为true了

$a = 5;
$b = 4;

    if(++$a > 5 || $b++ > 3){
        echo '#####<br/>';
    }
    echo  $a,'|', $b;
    //结果还是6|4,因为与运算只要有一个条件为真,就直接输出了,
    //这里++$a = 6,就直接输出了,所以,第二个条件根本没有进行运算,还是4
    
image.png

三元(三目)运算
就是简写的 if...else

$d = a?b:c
如果 a = true;$d =b
如果 a =false;$d =c

例子:

$a = 5;
$b = 4;
echo  $a > $b ? 'a大于b' : 'a不大于b';
image.png
//取得三个变量的最大值
//自己的写法:
    $a = 354;
    $b = 8;
    $c = 29;
    echo ($a > $b ? $a:$b )>($b > $c ? $b:$c )?($a > $c ?  $a:$c ):($b > $c ? $b:$c );

视频的写法:
    $a = 3;
    $b = 81;
    $c = 29;
    echo $a>$b?($a>$c?$a:$c):($b>$c?$b:$c);

结构:

  1. 代码执行顺序: (一般来说)顺序结构 从上到下,从左到右
    2.分支结构: if...else 、switch,所有的switch都能用if...else写,但是不是所有的if...else都能用switch写

    • 单分支
 if(表达式){
 code;
}
表达式不成立则不执行
  • 双分支
if(表达式){
    code1;
}else{
    code2;
}
表达式成立,执行code1,表达式不成立,则执行code2;
  • 多分支
if(表达式){
    code1;
}else if{
    code;
}else{
    code2;
}

else  if 在JS中必须分开写,在php里,可以写成else  if ,也可以写成elseif,可以不分开写

if(表达式){
    code1;
}else if{
    code;
}[
else{
    code2;
}
]
中括号里装代码表示中括号里的代码可有可无,这是约定俗成的写法。

示例:

$age = 26;
    if($age >= 12 && $age <16){
        echo '门票60';
    }else if($age >= 16 && $age <18){
        echo '门票100';
    }else if($age >= 18){
        echo '门票130';
    }

分支结构的判断条件要封闭性,否则,有可能后面的代码不执行,
例如,第一个判断条件,如果只有$age >= 12 没有 $age <16的话
一旦输入的数字大于等于12,后面的代码永远不会执行
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容

  • Comment your JavaScript Code JavaScript中的注释方式有以下两种: 使用 //...
    归云丶阅读 1,100评论 0 0
  • 第一章 前端三大语言:HTML(专门编写网页内容)、CSS(编写网页样式)、JS(专门编写网页交互行为) 能简写尽...
    fastwe阅读 943评论 0 0
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,741评论 2 9
  • 一、语言 1、 语言的发展: 纸带机:机器语言; 汇编语言:符号语言; 现代语言:高级语言 2、起源JavaScr...
    瘦不下去了阅读 539评论 0 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,460评论 1 45