以<?php ...?>为结构框架
…处填写代码
用;结束语句
echo多次输出
print单词输出
注释// 多行注释 /* …*/
1.以$开头
2.中间不能有空格
3.不能以数字开头
常用的命名法:hello_world、HelloWord、
1.HTML与PHP文件的混编,可以在php文件下改代码,网页显示,但是如果在HTML的文件下改PHP代码,则网页不显示更改内容。
2.代码由上到下执行。
3.变量的命名要唯一,如果两条变量相同挨在一起,则下一条变量名会将上一条变量覆盖。
echo 输出数据的值
var_dump 打印数据的类型和值,测试时使用 。
通常用于条件的判断
<?php $x = true; var_dump($x); echo '<hr>'; $y = flase; var_dump($y); ?>
<?php $number = 0; var_dump($number); echo '<hr>' $number = 67; var_dump($number); echo '<hr>'; $number = -322; var_dump($number); ?>
<?php $number = 10.03; var_dump($number); echo '<hr>'; $number = 69.3223; var_dump($number); echo '<hr>'; $number = -32.099; var_dump($number); ?>
关于解决PHP中文输入乱码:
只需要在php文件头部加一个:
<?php header('Content-Type: text/html; charset=utf-8'); ?>
测试:
<?php header('Content-Type: text/html; charset=utf-8'); $str = '我是小明'; var_dump($str); echo '<hr>'; $str = 'my name is tom'; var_dump($str); ?>
如果去掉引号的话,则会报错。
单引号与双引号的区别:
双引号里放变量会把变量的值输出。
单引号则会直接把$变量输出
<?php header('Content-Type: text/html; charset=utf-8'); $str = '我是小明'; var_dump($str); echo '<hr>'; $str = "$str my name is tom"; var_dump($str); echo '<hr>'; $str = '$str my name is tom'; var_dump($str); ?>
1.创建空数组:
<?php $arr = array(); var_dump($arr); $arrs = []; var_dump($arrs); ?>
数组都是由键和值组成的,默认情况下,键是从0开始的,但也可以自定义,定义之后,从定义的下一个的键值为0开始索引。类似于python中的dict.
<?php $arr = array( 'hello', 'where' => 'where', 'how are you' ); echo $arr[0]; echo '<hr>'; echo $arr['where']; ?>
2.将数组中的所有数据输出。
<?php $arr = array( 'hello', 'where' => 'where', 'how are you' ); print_r($arr); ?>
3.连接符
echo '我来自'.$arr['where'];
1.二维数组
<?php header('Content-Type: text/html; charset=utf-8'); $arr = array( array( '西瓜' ), array( '桃子', '榴莲' ), array( '葡萄', '苹果' ) ); echo $arr; echo '<hr>'; print_r($arr); ?>
2.三维数组
三维数组的索引:
echo '我的名字是:'.$arr[0]['name'].',我的学校是'.$arr[0]['school']; echo '我会:'.$arr[0]['gongfu'][0].',还会'.$arr[0]['gongfu'][1];
1.一维数组的循环
<?php header('Content-Type: text/html; charset=utf-8'); $arr = array( 'xiagua' => '西瓜', 'taozi' => '桃子', 'liulian' => '榴莲', 'putao' => '葡萄', 'pingguo' => '苹果' ); print_r($arr); echo '<hr>'; $num = 0; foreach ($arr as $k => $v) { echo $k.$v; echo '<hr>'; } ?>
2.多维数组的循环
循环的原理:
<?php header('Content-Type: text/html; charset=utf-8'); $arr = array( array( '西瓜', '山竹' ), array( '桃子', '榴莲' ), array( '葡萄', '苹果' ) ); foreach ($arr as $k => $v) { echo $v[0].$v[1]; echo '<hr>'; } ?>
<?php header('Content-Type: text/html; charset=utf-8'); $arr = array( array( '西瓜', '山竹' ), array( '桃子', '榴莲' ), array( '葡萄', '苹果' ) ); foreach ($arr as $k => $v) { foreach ($v as $vv) { echo $vv; echo '<hr>'; } } ?>
3.三维数组的循环
<?php header('Content-Type: text/html; charset=utf-8'); $arr = array( array( '西瓜', '山竹', array( '好吃', '便宜' ), ), array( '桃子', '榴莲', array( '香气扑鼻', '迎面而来' ), ), array( '葡萄', '苹果', array( '好看', '美味' ), ) ); ?>
1.直接将HTML代码放入到PHP代码块中。
<ul class="nav-menu"> <?php $menu = [ '首页', '服务器', 'PHP', '前端', 'Thinkphp', 'Layui', '小程序' ]; ?> <?php foreach ($menu as $menu_v) { echo '<li>'; echo '<a href="/index.html">'.$menu_v.'</a>'; echo '</li>'; } ?>
运行结果。
2.将PHP代码于HTML代码穿插的进行。注意PHP代码的穿插,每一次都需要用<?php ,.,.. ?>包裹。
<?php $menu = [ '首页', '服务器', 'PHP', '前端', 'Thinkphp', 'Layui', '小程序' ]; ?> <?php foreach ($menu as $menu_v) { ?> <li> <a href="/index.html"><?php echo $menu_v; ?></a> </li> <?php } ?>
三元运算符
$name = '小明'; echo '<hr>'; echo $name ?'我的名字是小蜜蜂':'我也不知道我是谁啊!!!';
if
else
elseif
$name = '小明'; if($name){ echo $name; }elseif($name){ echo 'your are a pig !'; } else{ echo 'i don\'t konw who i am !'; }
switch case defult
break
$number='1123121'; switch($number){ case '1123': echo 'input 1123'; break; case '2': echo 'input 2'; break; case '3': echo 'input 3'; break; default: echo $number; };
match
$str = 'age'; echo match ($str) { 'name' => 'xioam', 'age' => '12', default => 'imasas', };
match 与switch的区别
1.match是一个表达式,表示的结果可以放在存储的变量中,或者返回。
2.match的分支仅支持单行表达式,不用终端。
$str = 'age'; echo match ($str) { 'name' => 'xioam', echo '1212'; 'age' => '12', default => 'imasas', };
3.match进行严格的匹配比较。
表示变量没有值
官网手册:php数组相关函数官网手册
都在代码里了:
和C语言的函数类似。
$nm3 = 10 默认传参。
<?php $num2 = 90; function num($num1,$num2,$num3=10){ return $num1+$num2+$num3; } echo num(10,12); ?>
也可以在自定义函数中引用全局变量。
<?php $num2 = 90; function num($num1,$num3=10){ global $num2; return $num1+$num2+$num3; } echo num(10); ?>
命名参数:
输出结果:
第一次执行$num++,先执行那个num的值,后num的值加1,第二次输出才为$num+1.($num–也一样)
++$num 是先加u一再直接输出。(–$sum也一样)
连接符:
一个变量与整型连接必须在整型前面加空格。
比较运算符:
===类似于C语言中的==,不但比较数值还比较数值的类型。
字符串与数字的比较:
PHP8中: 0 == ‘hello’ //false
与数字字符串比较时,PHP8使用数字比较,否则将数字转化为数字字符串进行比较。
逻辑运算符:
优先级和C语言相似
examp1:
下图的代码表示:判断标题是是否存在,用到了if语句和函数isset(),存在则输出标题。
example2:
下图的代码表示:如果图片的不为空的话,即有图片的话就输出图片。empty() 函数是判断()的是否为空,为空返回真,前面再加一个!表示取反,即表示有图片。这个条件下输图片。
下图是修改前的原始代码,进行比较。
examp3:
isset()函数会把0看成真,即上述的代码的输出结果为:这是isset输出。
1.while
<?php $int = 1; while($int<10){ $int++; echo $int; } ?>A
2.do while
<?php $int = 1; do{ $int++; echo $int; echo '<hr>'; }while($int < 10) ?>
3.for
<?php $int = 1; for($int;$int<10;$int++){ echo $int; echo '<hr>'; } ?>
4.continue
结束当前循环,进入下次循环。
5和6一起输出。
<?php $int = 1; for($int;$int<10;$int++){ echo $int; if($int==5){ continue; } echo '<hr>'; } ?>
5.break
结束循环,可以跳出多层循环。