0%

PHP语法

php

流程结构

break 2:后可接数字,表示跳出循环的级数;

运算符

a and b: 将可能为false的值放在a的位置,以提高程序的运行速度;

a or b 将可能为true的值放在a的位置

例:a or ++a 自增的运算符优先级高于or,一般考虑当a初始值为10 atrue的情况下,则运算后的结果a为11。实际上应为atrue,系统不对a进行自增,而是以结果为导向,a并不会参加运算,实际上运算结束后其值为10。

HEREDOC

数据类型

变量

局部变量

定义在函数内部的变量为局部变量,局部变量不能在函数外部被访问,随着函数的结束而销毁

1
2
3
4
5
function test(){
$a=4;
echo $a; //正常
}
echo $a; //报错

静态变量

static $a=1;

1
2
3
4
5
6
7
function test(){
static $a=1;
$a+=1;
return $a;
}
test();//$a==2
test();//$a==3

静态变量再函数结束执行后从不会立即销毁,再下次调用该函数时静态变量中存储的值仍然有效,且静态变量只再第一次执行时声明。

全局变量

php所有得全局变量都存在与一个叫做$GLOBALS的数组总通过变量名可以访问该全局变量,要在函数中访问全局变量需要使用global关键字声明。

1
2
3
4
5
6
7
8
9
10
11
<?php
$x=1;
$y=2;
function test(){
$GLOBALS['x']=$GLOBALS['x']+$GLOBALS['y'];
}
test();
echo $x $y;
#输出结果x=3,y=2

?>

常量

1
define("SRATIC","aramndhe") //常量大写

预定义常量

预定义常量

函数

传参-应用传递与值传递

1
2
3
4
5
6
7
8
$a=10;
$b=10;
function test($a,&$b){
$a+=1;
$b+=1;
}
test($a,$b);
echo $a,$b;

运算结束后$a的值仍然为10,$b的值为11。这就是php参数传递的两种不同模式,$a为值传递,再函数执行时,将$a的值复制一份到内存中生成一个新得值,此时函数中得$a相当于一个局部变量,参与函数的运算,故函数中的运算并不会对$a的原始值产生影响。而&$b则指引用传递,再运算过程中$b的相当于将其内存地址传到了函数中,此时$a相当于全局变量,函数中对$b的改变相当于对其本身值得改变。

不定长传参

1
2
3
4
function test(){
var_dump(func_get_vars());
}
test(12,45,565);

func_get_vars,运算结束后将答应输入的所有实参的值,用以实现函数的不定长参数。

1
2
3
4
function test(){
var_dump(func_get_var(0));
}
test(12,45,565);

func_get_var函数中传入形参的索引编号,获取对应索引的值。上例将会打印12。

1
2
3
4
function test(){
var_dump(func_num_args());
}
test(12,45,565);

func_num_args ,获取自定义函数传入参数的数量。

可变函数

1
2
3
4
5
function test(){
var_dump(func_num_args());
}
$a = "test";
$a(132,56,64);

可变函数,将函数作为一个对象赋值给一个变量。

递归函数

函数内部自己调用自己的函数被称为递归函数。

1
2
3
4
5
6
7
8
9
10
11
<?php
function avc($n){
echo $n.'&nbsp';
if ($n>0){
avc($n-1);
}else{
echo '<--->';
}
echo $n.'&nbsp';
}
avc(3); ////////这个函数写错了,我在这儿写蒙了....................

类型比较

数组函数

数组函数

字符串函数

字符串函数

正则表达式

正则表达式

日期与时间

日期与时间

图像处理

图像处理

文件操作

文件操作

上传文件

上传文件

下载文件

下载文件

Buy me a coffee.

欢迎关注我的其它发布渠道