php基础2

一. 运算符和表达式

  • 算数运算符: + - * / % .
  • 赋值运算符: += -= *= /= %= .=
    例子: $a += b 其 实 就 是 b 其实就是 ba = $a + $b
  • 自加自减运算: ++ –
  • 关系运算符: < > <= >= != == !== ===
    $a < $b
    = 赋值
    == 判断值是否相等
    != 判断值是否不相等
    === 判断值和值对应的类型都要相等
    !== 判断值或者值对应的类型只要有一个不相等
  • 逻辑运算符. && || and or !

二. 流程控制

####顺序结构:从上到下按顺序执行
####分支结构:

  1. 单向: 形式
if (表达式) {
    语句块;
}

执行流程: 当程序执行到if语句时,判断表达式,如果为真,则执行语句块.,如果为假则不执行.
[注] 在实际开发中,总有那么一些二货,会将if后边 的大括号省略.如果省略之后默认第一个输出的语句块是if里边的大括号里边的内容.其他情况才是else大括号中的内容
2. 双向: 形式

if (表达式) {
	语句块1;
} else {
	语句块2;
}

执行流程: 当程序执行到if语句时,判断表达式,如果为真,执行语句块1,如果为假,执行语句块2.
[注] 语句块1和语句块2不会同时执行,也不会同时不执行,肯定会执行其中一个.
3. 多向: 形式

if (表达式) {
    语句块1;
} else if (表达式2) {
	语句块2;
} else if (表达式3) {
	语句块3;
} else {
	语句块4;
}

执行流程: 当程序执行到if语句时,先判断表达式1,如果为真,执行语句块1,直接跳出整个结构.若为假,继续判断表达式2,若为真,执行语句块2,跳出整个结构.若为假,接着往下继续这样的判断.最后如果都为假,则执行最后一个else语句块
[注] 理论上可以有多个if, 最后一个else可以没有
4. 嵌套:

if (){
	if () {
		语句块1;		
		} else {
		语句块2;
	    }else {
	语句块3;		
}

[注] 嵌套时,一般时嵌套两层或者三层
5. switch-case: 语法格式:

switch (表达式) {
	case1:
		语句块1;
		break;
	case2:
		语句块2;
		break;
	case3:
		语句块3;
		break;
	case4:
		语句块4;
		break;
	default:
		语句块n;
	break;
 }

[注意事项]
1.默认每一个case后边可以是整型,字符串,浮点
2.默认每一个case后边都要跟一个break,遇到break就跳出整个结构
3.case后边可以没有break,如果没有,程序继续执行,直到遇到break,才跳出整个结构
4.理论上我们可以有多个case,来输出相同的内容
5.default可以有,也可以没有

循环结构:
  1. while: 语法结构:
while (表达式) {
	循环体;
}

执行流程: 当程序执行到while结构时,首先判断表达式的真假,若为真,执行循环体,若为假,跳出循环.
2. for: 语法格式:

for (表达式1; 表达式2; 表达式3) {
	循环体;
}

执行流程:先执行表达式1,再判断表达式2,如果真,执行循环体,再来执行表达式3,再判断表达式2,若果为真,继续执行循环体,再接执行表达式3,再来判断表达式2,直到表达式2的条件为假的时候,跳出循环
3. break和continue的区别
break: 跳出整个循环结构,无论后边还有多少语句都不执行
continue: 结束本次循环,后边的内容不再执行.接着执行下一次循环
[注]在while循环中使用continue可能会造成死循环

三.函数基本语法
  • 基本格式
function 函数名(){
	    函数体;
    }

[注]
1.函数是以function开头
2.function后边跟空格,空格后边跟函数名,函数名后边写().
3.在()下边写{}
4.函数一定要调用才能执行
5.调用时的写法: 函数名();

  • 函数名:
    1.跟变量的格式一样
    2.函数名要有意义
    3.函数名遵循驼峰法或者下划线 myFunc() my_func()
    4.函数名不区分大小写,(但是大家一定要区分大小写)
  • 无参数无返回值
    参数:就是函数的输入
    返回值:就是函数的输出
  • 有参数无返回值
    1.在定义时,函数名后边的小括号,小括号里边的参数就是形式参数,参数就是一个变量
    2.在调用时,函数名后边的小括号,小括号里边的参数是实际参数,这里的实际参数就是在实际值的
  • 有参数有返回值
    1.return 指返回值
    2.函数名只能定义一次,可以调用多次
    3.调用函数时,一旦遇到return,就立即返回,后边无论有多少代码都不再执行
    4.return可以返回一个值,也可以返回多个值,多个值只需要返回一个数组即可.
  • 默认参数
    1.一般情况下,没有默认值的参数放在最前边,有默认值的参数放在后边
    2.在定义形式参数中,参数最多写5个,

四.作用域

一个变量的执行有效范围,或者是一个变量的生命周期.

内部变量
  • 函数调用结束后,函数体内的变量都会被释放(销毁)
function huang(){
    $a = 250;
    echo $a;
}
huang();
echo $a;//报错
外部变量
  • 函数内部不能调用函数外部的变量,函数外部也不能调用函数内部的变量
$b = 500;
function huang(){
    $a = 250;
    echo $a.'<br />';//250
    echo '这是内部调用外部的变量,值为'. $b;//报错
}
huang();
echo '这是外部调用内部的变量,值为'. $a;//报错
echo '这是外部调用外部的变量,值为'. $b;//500
超全局变量
  1. 方法一: global $b 在函数内部调用外部变量时,使用global
    global在函数内部产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量
  2. 方法二:
$GLOBALS  $_GET   $_POST  $_FILES $_SESSION $_COOKIE $_SERVER
  1. $GLOBALS[]确确实实调用的是外部的变量,函数内外会始终保持一致,使用$GLOBALS在函数内部改变变量的值,同时函数外部变量的值也会改变
function test() {
    $foo = "内部";
    echo $GLOBALS["foo"] . "<br />";//外部
    echo $foo . "<br />";//内部
}

$foo = "外部";
test();
var_dump($foo);//外部
静态变量
  1. 用static关键字声明的变量就是静态变量
  2. 静态变量一旦被声明,就已经有值了,函数调用执行完之后静态变量不会被销毁,无论你执行多少次.该静态变量的值会一直累加

五. 引用传参

  1. 引用传参时&必须写在形式参数的前边
  2. 使用引用传参时,形式参数发生变化对应的外边实际参数的值也会一起改变
  3. 参数在外面可以不定义,只有在引用传参时,可以在外边不定义实际参数(变量),在传值的时候,其实就相当于是在外边定义了一个参数(变量)
$a = 250;
function duhaitao(&$num){
	$num = 300;
	echo $num.'<br />';
}
duhaitao($a);
echo $a.'<br />';

六.加载文件

  1. include include_once
  2. require require_once
  3. include和require的区别
    include:包含文件,当包含文件失败时,会出现一个警告,但是程序会继续往下执行
    require:包含文件,当包含文件失败时,会出现一个致命性的错误,程序不会往下执行
  4. 带once和不带once的区别:
    带once: 程序在执行的时候首先先检测该文件有没有加载,如果没有被加载,我们直接加载.如果已经加载.就不在加载了.
    [总结]不带once的执行效率比带once的执行效率高
  5. 语法结构:
include '';
include();

七.数组

基本定义
  1. 数组: array 关键字 一组数据
  2. 元素:数组中的每一个个体就是一个元素
  3. 键值对: 英汉词典 hello===> 你好 world====>世界
数组分类和声明
  • 索引数组
  1. 读取
    通过找到数组的下标,把下标使用中括号括起来,就可以找到对应的值

echo $arr[3];

  1. 添加

$arr[7] = 8;
$arr[ ] = 10;//找到该数组中下标最大的值,然后给下标加1,就是当前值为10对应的下标

  1. 修改

$arr1[8] = 30;//修改的是已经存在的下标的值,

  1. 删除

unset($arr[1]);
var_dump($arr);

  • 关联数组
  1. 读取

echo $arr[‘222’];

  1. 添加

$arr[‘aaa’] = ‘徐豪杰’;
$arr[ ] = ‘肖杰’;//这样写,通过数组中找到最大的(数字)或者(数字字符串),然后加1,作为该值得键.

  1. 修改

$arr[‘ccc’] = ‘小黄人’;

  1. 删除

unset($arr[‘ccc’]);

  • 索引关联混合
  • 多维数组

八. 数组遍历

  1. for
    [注]for只能遍历索引数组,并且下标是从0开始连续的
  2. foreach
foreach ($arr as $key => $value) { 
	echo $key .'<br />';
	echo $value.'<br />'; 
	echo $key.'=>'.$value.'<br />';
}

-四. 超全局数组

  1. $_GET $_POST
    [注]通过form表单提交过来的数据都是通过get或者post提交的
  2. $_REQUEST: 接收get和post任何一种方式提交过来的数据
  3. $_SERVER:是一个超全局数组[默写]
    • SERVER_ADDR:获取服务器的ip地址
    • REMOTE_ADDR: 获取客户端的ip地址
    • HTTP_REFERRER:从哪里过来的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值