php基础巩固加强(二)

运算符

算术运算符

对变量和数组进行算术运算。

算术运算符:+,-,*,/,%

         +:将连个或者多个数值相加

         -:将两个数值相减

      *:将两个数值相乘

      /:将两个数值相除

      %:取相除的余数

demo如下:

//算术运算符

	$a = 100;
	$b = 11;

	//加运算
	var_dump($a + $b);				//111

	//减运算
	var_dump($a - $b);				//89

	//乘运算
	var_dump($a * $b);				//1100

	//除运算
	var_dump($a / $b);				//9.0909090909090909090909

	$f1 = 2.7;
	$f2 = 0.9;
	var_dump($f1 / $f2);			//3,浮点型,当运算过程中有一个浮点型的数据的时候,计算的结果就是浮点型

	$c = 10;
	$d = 0;
	var_dump($c / $d);				//FALSE,0不能作为除数,否则会报警告

	//模运算
	var_dump($a % $b);				//1   $a除以$b 除完之后看余数是多少 这里100 / 11 商9余1 所以是1

赋值运算符

将右边的值(计算结果)赋值给左边的变量

赋值运算符:=,+=,-=,*=,/=,%=,.=

=:赋值,将右边的值赋值给左边的变量

+=:将左边的变量的值加上右边的结果之后,再将值赋值给左边的变量

-=,*=,/=,%=,.= 都是一样的效果 注意: .= 不是简单的算术运算 它是一个字符串拼接

demo如下:

//赋值运算符

//=最简单赋值
$a = 100;
$b = 10;
$s = 'hello';

//+= 把左边的变量的值+右边的结果,然后将值赋值给左边的变量
$a += $b;                 //a:110
// $a += $b <======等价于======> $a = $a + $b
//使用+= -= .=等类似这种符号的时候,必须保证左边的变量已经被初始化(定义好)

@$c += $b; //等价于$c = $c + $d  如果未定义$c会报错,之所以会报错是因为$c未找到,@符号这个是错误抑制符号
//错误,提示变量c未定义

//  /=,右边的结果不能为0
$a /= 0;   //等价于//$a = $a / 0;
//错误,除数不能为0

// .= 将左边的变量与右边的变量连接起来,赋值给左边的变量
$s .= $a;  //等价于$s = $s.$a 输出:hello100

//a变量值类型是整型,但是当碰到点运算符(字符串运算符)的时候,系统会自动将整型转化成字符串再进行拼接。(所有类型,只要碰到点运算符都会变成字符串(简单类型)数组等类型除外)

逻辑运算符

多个(一个)表达式使用逻辑符号来进行运算。

逻辑运算符:与(&&),或(||),非(!)

&&:and左边和右边的条件必须同时为真,结果为真

||:or左边和右边的条件,只要一个为真,结果为真

 !:对条件结果本身取反,条件为真则结果为假,条件为假则结果为真

demo如下:

//定义两个结果
$true  = TRUE;             //真
$false = FALSE;            //假


//&&与运算
var_dump($true && $false);    //false
var_dump($true and $false);   //false


//||或运算
var_dump($true || $false);    //true
var_dump($true or $false);    //true

//!非运算
var_dump(!$true);           //false
var_dump(!$false);          //true;
var_dump(!$false);          //true;

逻辑运算符又称之为短路运算符(&&||)只有&&和||被称之为短路运算符

比较运算符

两个变量之间进行比较


比较运算符: >,>=,<,<=,==,!=,===,!==

如果两个比较的结果满足条件,那么返回真,否则返回假

===: 两个变量的类型和值都相同才为真

demo如下:

//定义变量
$a = 3;             //整型
$b = 3.0;          //浮点型

// ==是比较值
var_dump($a == $b);    //true

//===是比较值和类型
var_dump($a === $b); //false
//mysql操作的返回值(插入数据),对返回值不能一概而论

三目运算符(又称为三元运算符)

参与运算的表达式有三个

语法:表达式1 ? 表达式2 : 表达式3

如果表达式1为真,那么计算表达式2,否则计算表达式3

demo如下:

//定义变量
$money = 100;

//一般三目运算是用来得到结果,并将结果赋值给变量
$res = ($money >= 100) ? '有钱人' : '穷人'; //三元运算符 说明:问号前面的位置是判断的条件,如果满足条件时取问号后的结果否则的话就取冒号后的结果

echo $res;  //输出有钱人

//三元运算应用于复杂应用如下:
$res = ($money >= 100) ? ($money - 50) : ($money + 50);
echo $res;   //输出 50

//使用ifelse替代三目运算
if($money >= 100){
    $res = '有钱人';
}else{
    $res = '穷人';
}

//注意:所有的三元运算都可以被使用if else替代 但是不是所有的if else都能够完全用三元运算符去做

自操作运算符

自己操作自己的运算符

自操作运算符:++--

         ++:分为前置++和后置++$a = $a + 1

             前置++++$a

             后置++$a++

demo如下:

//定义变量
$a = 10;

//前置++
//var_dump(++$a);              //11
//1.   $a = $a + 1
//2.   先自加,后赋值

//后置++
//var_dump($a++);              //10 先赋值后自加1


$b = 0;
$c = 0;

//++运算
$b = $a++;    //b=10,a=11

//$b = $a++ 执行顺序如下:
//$b = $a;    //a = 10,b = 10
//$a = $a + 1; //a = 11
echo 'b = ' , $b ,' a = ',$a;
//以上是程序运行流程

//$temp = $a;
//$a++ ======== $a = $a + 1;
//$b = $temp;

echo '<br/>';

$c = ++$a; //12 因为上面的$a已经是11了

//===========
//$a++ ====== $a = $a + 1;       //12
//$b = $a;       //12
echo 'c = ' , $c ,' a = ',$a;

通常,在循环中,使用自运算比较,用户控制循环变量。

字符串运算

连接字符串

字符串运算符:.和 .=

$a = 'hello ';

$b = 'world';

.:  表示两个字符串连接,不会改变原来的变量本身

$c = $a . $b;

.=:将两个字符串连接起来后再赋值给左边的变量

$a .= $b <===========> $a = $a . $b;

还有位运算符= =  这里位运算先暂时不做记录。

流程控制

表达式:凡是有值返回的结构(语句)都可以称之为表达式

1.       所有的值本身都可以是表达式

2.       所有的运算符运算的结果也都是表达式

PHP的流程控制:顺序结构,分支结构,循环结构

顺序结构

代码从上往下顺序执行

$a = 10;

echo $a

分支结构

通过条件判断,选择多个步骤中的一个,体现到代码,有好几块代码,没一块代码的执行都必须满足一个条件,代码之间具有互斥性,执行某一块代码就意味着不再执行其他块代码

条件1:学习PHP

条件2:学习JAVA

条件3:学习.net

条件4:学习平面


PHP中有两大分支结构:if分支,switch分支

if分支语法:

最简if

 if(条件)

{

  //只要满足条件(条件为TRUE),那么执行语句块

   //要执行的PHP代码

}

//如果不满足,则不执行if内部的语句块


标准if

 if(条件)

{

  //如果条件为TRUE,那么执行语句块1,不会执行语句块2

  //语句块1

}

else

{

  //如果条件为FALSE,那么执行语句块2,不会执行语句库1

 //语句库2

}


复杂if:有多个else和if的嵌套

 if(条件1)

{

//语句块1

}

elseif(条件2)

{

  //语句块2

}

elseif(条件3)

{

  //语句块3

}

……等 一直写

demo如下:

//最简的if
if(true)
{
    //输出
    echo '结果为真';
}

//标准if
$money = 100;
if($money >= 100)
{
    echo '有钱人';
}
else
{
    echo '穷人';
}

echo '<br/>';

//复杂if
$money = 9999;
if($money >= 10000)
{
    echo '超级有钱人';
}
else if($money >= 1000)
{
    echo '很有钱人';
}
else if($money >= 100)
{
    echo '一般有钱人';
}
else
{
    echo '穷鬼';
}
 if的条件判断是顺序分支,从第一个条件开始判断,如果不满足第一个条件 则会转向第二个条件判断,如果满足第二个条件,从而执行第二个条件内的语句块。

注意: 语句块执行结束后(满足一个条件)就会跳出分支结构,从而不再判断(不再执行)

elseif 和else if的区别: elseif 只有php才支持此语法


switch分支

语法

switch(条件变量)

       {

case 值1:    //条件变量 == 值1

   //语句块

   break;  //跳出当前分支,不再进行条件判断

case 值2:

。。。。

default:

//如果没有满足任何条件的语句

}

demo如下:

//通过数值来判断当前是星期几
$day = 6;

//switch分支
switch($day)
{

    case 1:
        echo '星期一';
    //break;   //如果case没有break,意味着执行完当前case之后,还会继续执行下面的case
    case 2:
        echo '星期二';
        break;
    case 3:
        echo '星期三';
        break;
    case 4:
        echo '星期四';
        break;
    case 5:
        echo '星期五';
        break;
    case 6:
        echo '星期六';
        break;
    case 7:
        echo '星期天';
        break;
    default:
        echo '您的输入错误,一个星期只有7天';
}

//程序运行之后输出: 星期六

循环结构

某一段代码需要重复执行多次的时候,可以通过循环来控制,对同一段代码进行多次调用。

PHP的循环结构有:forwhiledo-whileforeach

foreach循环:遍历数组,从数组中获取一个元素,将元素的值和下标(键)都分别赋值给某个指定的变量,从而通过对变量的访问实现访问某个数组元素的值。


for循环:已知初始化条件,范围

for(条件初始化;条件范围(判断);条件变化)

{

    //循环体

   //循环控制:continue,break

}

简单for循环demo如下:

//简单for循环 
//输出1到10,每输出一个数,都换行
for($i = 1;$i <= 10;$i++)
{
    echo $i.'<br/>';
}


for循环可以没有条件

for(;;)

{

    //循环体

    //循环控制

}

for循环没有条件demo如下:

//输出1到10
$i = 1;
for(;;)
{
    echo $i++,'<br/>'; //先输出当前值,后自增

    //判断条件,适当时候强制退出循环:break
    if($i == 11)
    {
        break;
    }
}


for循环中往往在第一个条件里,可以写多个表达式,表达式之间用逗号分割。

demo如下:

//输出1到10,不要输出5
for($i = 1,$end = 10;$i <= $end;$i++)
{
    //判断$i是否等于5
    if($i == 5)
    {
        //让循环重新来过,不再执行当前语句以下的循环体
        continue;
        //中止本次循环,不再执行当前语句以下的循环体,重新开始下一次循环
    }

    echo $i,'<br/>';
}

for循环执行步骤

for($i = 1①;$i <= 10②;$i++③)

{

    echo $i,'<br/>'④; 


while循环:只判断循环条件,循环条件的变更是在循环体内的循环。

while循环语法如下:

while(循环条件)

{

    //循环体

    //循环条件的变更

}

demo如下:

//输出1到10,5不要
//在循环开始前必须先初始化循环条件
$i = 1;

//循环开始
while($i <= 10)
{
    //判断当前$i是否为5
    if($i == 5)
    {
        //变更循环条件
        $i++;

        //中止当前循环
        continue;
    }
    //当if或者else的语句块只有一条语句的时候,可以省略大括号

    //i不等于5,循环变量变更
    echo $i++,'<br/>';
}

do-while循环:跟while循环是相似的,while循环是先判断条件后执行循环体,do-while不论如何会先执行一次循环体,然后再判断条件。

do-while循环语法如下:

do{

   //循环体

   //循环条件变更

}while(条件)

do-while循环demo如下:

//从1开始输出,如果达到10,自动终止
$i = 1;

do
{
    //判断是否满足条件,如果当前i等于10,则终止循环
    if($i == 11) break;

    //输出
    echo $i++,'<br/>';
}while(1);
//while(1)表示永远为真,while里面最终是要得到一个布尔值,所以其他值会被自动转化成布尔值,而1会被转化成TRUE


//通过while条件判断终止循环

//表示当程序执行带该语句时,后面的语句不再执行
//$i = 0;
do
{
    //输出
    echo $i++,'<br/>';          //输出原来i的值11,但是会自增1,变成12
}while($i <= 10);              //i=12


需求:从1到10,每个数字都放到一个行的一个列中(table)中。

模板语法:专门为了在嵌入到html代码中的时候,为了将对应的大括号所带来的视觉上的不友好给替代

for()

{

 

}

====è

for():

endfor;


模板语法:ifforwhileforeach

if()

{

}

====è

if():

endif;

for()

endfor;  等其它while foreach的模板语法和if for都是一样的,就不一一写出来了。 



声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与