变量是用于存储值的,通常状况下一个变量只能装一个值,能够将变量想象是一个瓶子,值就是瓶子里面的水javascript
<?php $name = "alex"; // 定义一个变量 echo $name //输出 ?>
在变量中,因为变量占用的空间单元不同,也分红几种数据类型,可使用"memory_get_usage"函数获取当前消耗的内存php
<?php // 获取当前消耗的内存 $c1 = memory_get_usage(); $name = 'alex'; $c2 = memory_get_usage() - $c1; echo '变量name所占用的内存空间:'.$c2 ?>
php是一个弱类型语言,在定义时不须要声明变量的类型,php会自动吧变量转换成自动的数据类型java
<?php $string = "就是就是"; var_dump($string); //使用var_dump查看变量的数据类型 echo "<br />"; $string = 9494; //自动将$string变量转换成int类型 var_dump($string); echo "<br />"; ?>
<?php // 定义一个$name变量 $name = 'alex'; // 输出$name变量 echo $name ?>
在php中使用 . 链接两个字符串,与python或者javascript中使用+链接字符串不同python
<?php // 定义变量 $name = 'alex'; $age = '20岁'; // 使用 . 链接字符串输出 echo '名字:'.$name.'年龄:'.$age // output: 名字:alex年龄:20岁 ?>
<?php // 定义变量 $name = 'alex'; // 当引号赶上美圆符号 echo '名字:$name'; //输出的是$name echo "名字:$name" //字符串格式化输出 ?> // output: 名字:$name 名字:alex
在赋值符号后,输入界定福"<<<",接着就是标识符(代码中的EOF)mysql
//多行字符串 $content = <<<EOF 我有一只小毛驴,我历来也不骑。 有一天我心血来潮,骑着去赶集。 我手里拿着小皮鞭,我内心正得意。 不知怎么哗啦啦啦啦,我摔了一身泥. EOF; echo $content; ?>
布尔类型(boolean):只有两个值,一个是TRUE另外一个是FALSE,bool不区分大小写,主要是用在条件结构sql
<?php $man = '男'; $flag = $man == '男'; echo $flag; var_dump($flag) ?>
整形(integet):相似于常见的证书,能够用十进制,八进制,十六进制指定,十进制就是平常使用的水,八进制数字前必须加上"0",十六进制数字前必须加"0x"数据库
<?php $data_int = 1234; // 十进制数 $data_int = -567; // 一个负数 $data_int = 0123; // 八进制数(等于十进制的 83) $data_int = 0x1a; // 十六进制数(等于十进制的 26) ?>
浮点型(浮点数,双精度数或实数),也就是一般说的消暑,能够用小数点或者科学计数法表示,科学计数法可使用小写的e,也可使用大写的E数组
<?php $num_float = 1.234; //小数点 $num_float = 1.2e3; //科学计数法,小写e $num_float = 7.0E-10; //科学计数法,大写E ?>
资源(resource):资源是由专门的函数来创建和使用的,例如打开文件、数据链接、图形画布。任何资源,在不须要的时候应该被及时释放。若是咱们忘记了释放资源,系统自动启用垃圾回收机制,在页面执行完毕后回收资源,以免内存被消耗殆尽服务器
例如:函数
<?php $f = fopen('./content.txt','r'); //打开文件,第一个参数是文件名,第二个参数是打开类型 $conn = mysqli_connect('host','root','密码','数据库名');//数据库链接 $img = imagecreate(100,100) //画布 ?>
文件的简单操做:
<?php $f = fopen('./content.txt','r'); //打开文件,第一个参数是文件名,第二个参数是打开类型 if ($f){ //判断f文件资源是否存在 //接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,而后输出每行的文字 while (!feof($f)){ //判断是否到最后一行 $line = fgets($f); // 输出一行文本 echo $line; } } ?>
NULL(空):NULL是空类型,对大小写不敏感,null类型只有一个取值,表示一个变量没有值,当被赋值为null或者还没有被赋值,或者被unset(),这三种状况下被认为为null
<?php error_reporting(0); //禁止显示PHP警告提示 $var; var_dump($var); $var1 = null; var_dump($var1); $var2 = NULL; var_dump( $var2); $var3 = "节日快乐!"; unset($var3); var_dump($var3); // 输出的都是null ?>
常量是不变的量,在常量被定义后,在脚本的任意位置都不能够被改变,PHP中的常量分为自定义常量和系统常量
PHP自定义常量是根据咱们开发的须要而定义的常量,可使用PHP中的函数define()定义
define()函数的语法:
bool define(string $constant_name, mixed $value[, $case_sensitive = true]) <!--第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,可是要注意哦,它可不带美圆符号哦。第二个参数“value”为必选参数,它是常量的值。第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,通常不指定第三个参数的状况下,默认第三个参数的值为false。-->
string表示参数类型为字符串类型,mixed表示参数类型能够接受为多种不一样的类型
例:
<?php $p = "PII"; define('PI',3.14); define($p,3.14); echo PI; echo "<br />"; echo PII; ?>
在使用常量的时候能够直接调用define()函数的第一个参数中的字符串调用,可是不能够进行更改.
PHP常量取值的第二种方式:constant(),使用这种方式更加的灵活
例1:
<?php $name = 'alex'; define("NAME",$name); echo NAME; define("AGE",10); echo AGE; // 第一种取值方式 echo constant("NAME") //第二种取值方式 ?>
例2:
<?php $p=""; //定义圆周率的两种取值 define("PI1",3.14); define("PI2",3.142); //定义值的精度 $height = "中"; //根据精度返回常量名,将常量变成了一个可变的常量 if($height == "中"){ $p = "PI1"; }else if($height == "低"){ $p = "PI2"; } $r=1; $area = constant($p)*$r*$r; echo $area; ?>
使用defined(strinf constants_name)函数能够帮助咱们判断一个常量是否已经被定义,这个函数若是只有一个参数constant_name指的是要获取常量的名称,若存在则返回布尔类型true,不然返回false
<?php define("PI1",3.14); $p = "PI1"; $is1 = defined($p); $is2 = defined("PI2"); var_dump($is1); var_dump($is2); ?>
系统常量是php已经定义好的常量,能够直接拿来使用过,经常使用的系统常量:
<?php echo __FILE__; echo PHP_OS; echo __LINE__; echo PHP_VERSION; ?>
PHP运算符通常分为算数运算符,赋值运算符,比较运算符,三元运算符,逻辑运算符,字符串链接运算符,错误控制运算符
算数运算符只要是用于进行算数运算的,算术运算符与其余语言的运算符基本同样,不作笔记了
<?php $english = 110; //英语成绩 $math= 118; //数学成绩 $biological = 80; //生物成绩 $physical = 90; //物理成绩 $sum = $english + $math + $biological + $physical; $avg = $sum / 4; $x = $math - $english; $x2 = $english * $english; echo "总分:".$sum."<br />"; echo "平均分:".$avg."<br />"; echo "数学比英语高的分数:".$x."<br />"; echo "英语成绩的平方:".$x2."<br />";
例:
<?php $a = "alex"; $b = $a."大傻逼"; $c = &$a; $a = "alex不是大傻逼"; echo $a; // alex不是大傻逼 echo $b; // alex大傻逼 echo $c;// alex不是大傻逼 ?>
比较运算符返回都是bool类型
比较运算符 | 名称 |
---|---|
== | 等于 |
=== | 全等 |
!= | 不等 |
<> | 不等 |
!== | 非全等 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
例:
<?php $a = 1; $b = "1"; var_dump($a == $b); echo "<br />"; var_dump($a === $b); echo "<br />"; var_dump($a != $b); echo "<br />"; var_dump($a <> $b); echo "<br />"; var_dump($a !== $b); echo "<br />"; var_dump($a < $b); echo "<br />"; $c = 5; var_dump($a < $c); echo "<br />"; var_dump($a > $c); echo "<br />"; var_dump($a <= $c); echo "<br />"; var_dump($a >= $c); echo "<br />"; var_dump($a >= $b); echo "<br />"; ?>
(?:)三元运算符也是一个比较运算符
$num = 60; $b = $num <= 60 ? "及格" : "不及格"; // 若是判断成功取?后面的不然取:后面的 echo $b
逻辑运算符朱勇是进行逻辑运算的,例如:逻辑与,逻辑或,逻辑异或,逻辑非等
例子 | 名称 |
---|---|
$a and $b | And(逻辑与) |
$a or $b | Or(逻辑或) |
$a xor $b | Xor(逻辑异或) |
!$a | Not(逻辑非) |
$a && $b | And(逻辑与) |
$a || $b | Or(逻辑或) |
<?php $a = TRUE; //A赞成 $b = TRUE; //B赞成 $c = FALSE; //C反对 $d = FALSE; //D反对 //咱顺便复习下三元运算符 echo ($a and $b)?"经过":"不经过"; echo "<br />"; echo ($a or $c)?"经过":"不经过"; echo "<br />"; echo ($a xor $c xor $d)?"经过":"不经过"; echo "<br />"; echo !$c?"经过":"不经过"; echo "<br />"; echo $a && $d?"经过":"不经过"; echo "<br />"; echo $b || $c || $d ?"经过":"不经过"; ?>
PHP中有两个方式能够将字符串链接起来,第一种是(.),第二种是(.=)
<?php $a = "alex"; $tip = $a.",欢迎您在慕课网学习PHP!"; $b = "东边日出西边雨"; $b .= ",道是无晴却有晴"; //$b = $b.",道是无晴却有晴"; $b .= $a; // $b = $b.$a $c = "东边日出西边雨"; $c = $c.",道是无晴却有晴"; echo $tip."<br />"; echo $b."<br />"; echo $c."<br />"; ?>
PHP中提供了一个错误控制运算符"@",对于一些可能会在运行过程当中出错的表达式,能够将@防止在一个PHP表达式以前,该表达式可能产生的任何错误信息都会被忽略
<?php $conn = @mysqli_connect("localhost","username","password"); echo "出错了,错误缘由是:".$php_errormsg; ?>
语法:
<?php if(条件){ // ..... }else{ // ..... } ?>
例:
<?php efault_timezone_set('Asia/ShangHai'); //设置时区 $today = date('m-d',time()); //获取当前日期 $brithday = '04-20'; $money = 238; $discount = 0.8; if ($today == $brithday){ $sum = $money * $discount; echo "生日快乐,共消费:".$sum; }else{ echo "共消费:".$money; } ?>
语法:
if (条件1){ // ... }else if(条件2){ // ... }else{ // ... }
例:
<?php $totalMoney = 0;//总工资 $basicMoney = 2000;//基本工资 $sex = "男"; if($sex == "男"){ $totalMoney = $basicMoney + 0;// 男的没奖金 }else if($sex == "女") $totalMoney = $basicMoney + 300;// 女的有奖金300元 } echo $totalMoney; ?>
语法:
<php? switch(条件) { case 条件值1: break case 条件值2: break default: //默认任务 } ?>
例:模拟抽奖
<?php $num = rand(1,50); switch ($num){ case 1: echo "一等奖"; break; case 2: echo "二等奖"; break; default: echo "你抽中的是$num - "."很遗憾你没有中奖!"; } ?>
switch中break的做用是阻止代码进入下一个case中继续执行。
语法:
<php? while(条件){ // ... } ?>
例:100之内能被2整除的数相加
<?php $num = 1; $sum = 0; while ($num < 100){ if ($num%2 === 0){ $sum += $num; } $num +=1; } print $sum; echo "循环结束";
语法:
<php? do{ //执行任务 }while(条件) ?>
首先执行任务,执行任务完毕,判断某个条件是否符合(条件返回值是否为TRUE),若符合则再次执行任务,执行完毕任务,继续断定条件。
例:
<?php $i = 0; do{ $i ++; echo "这是第($i)圈"; }while($i < 5);
while与do...whild语句的区别:while在判断条件的时候,若是条件为false,一次也不会执行,do...while会执行一个do结构体中的语句,再进行判断是否须要继续执行下去
<?php //A例子 $num = 2; $sum = 10; while($num<3){ $sum = $sum + 10; } echo "A例子的结果:".$sum."<br />"; //B例子 $num = 2; $sum = 10; do{ $sum = $sum + 10; }while($num<3); echo "B例子的结果:".$sum."<br />"; ?>
例2:
<?php /** * Created by PhpStorm. * User: wualin * Date: 2019-04-20 * Time: 21:09 */ //例如开发一个掷骰子大富豪游戏,若是掷到6能够再掷一次,若是不是留则跳出可使用do_while来实现 // 使用while实现 $sum = 0; $num = rand(1,6); $sum = $sum+$num; while ($num == 6){ $num = rand(1,6); $sum = $sum+$num; } echo "while例子执行完毕,前进:$sum"; //使用do...while实现 $sum = 0; do { $num = rand(5, 6); $sum += $num; }while($num == 6); echo "do...while例子执行完毕,前进:$sum";
语法:
<?php for(初始化;循环条件;递增项){ // ... } ?>
例:求100之内能被2整除的数
<?php $sum = 0; for ($num=0;$num<100;$num++){ if ($num %2 === 0){ $sum += $num; } } echo $sum;
在php中的foreach循环语句,经常使用于遍历数组
语法:
<?php foreach(数组 as 值){ // ... } foreach(数组 as 下标(索引) => 值){ // ... } ?>
例:遍历数组
<?php $students = array( '2010'=>'令狐冲', '2011'=>'林平之', '2012'=>'曲洋', '2013'=>'任盈盈', '2014'=>'向问天', '2015'=>'任我行', '2016'=>'冲虚', '2017'=>'方正', '2018'=>'岳不群', '2019'=>'宁中则', );//10个学生的学号和姓名,用数组存储 //使用循环结构遍历数组,获取学号和姓名 foreach($students as $v) { echo $v;//输出(打印)姓名 echo "<br />"; } ?>
使用foreach遍历二维数组
<?php $students = array( '2010'=>array('令狐冲',"59"), '2011'=>array('林平之',"44"), '2012'=>array('曲洋',"89"), '2013'=>array('任盈盈',"92"), '2014'=>array('向问天',"93"), '2015'=>array('任我行',"87"), '2016'=>array('冲虚',"58"), '2017'=>array('方正',"74"), '2018'=>array('岳不群',"91"), '2019'=>array('宁中则',"90"), );//10个学生的学号、姓名、分数,用数组存储 foreach($students as $key => $val) { //使用循环结构遍历数组,获取学号 echo $key; //输出学号 echo ":"; //循环输出姓名和分数 foreach($val as $v) { echo $v; } echo "<br />"; } ?>