php的语句
1.php流程语句
1.php代码执行从上到下
2.条件语句 if else 和 switch
案例:
$name=56;
if($name>56) echo "hello world";
条件语句的画图解析:
if else 条件语句(主要针对范围)
switch 条件语句(主要针对具体的值)
案例:
$name=1;
switch($name){
case 1:
echo "1";
break;
case 2:
echo "2";
break;
}
4.循环语句:
for
案例:
for($i=0;$i<3;$i++){
echo $i;
}
while
案例:
while($i<5){
echo $i;
$i++;
}
do while
do{
echo "$i";
$i++;
}
while($i<5);
for each 针对关联数组
案例:
$arr=array("name"=>"zhang","age"=>12);
foreach($arr as $key=>$value){
echo $key;
}
注意:while和do while的区别:
while 先判断后执行
do while 先执行后判断;
js中的数组,本质是对象;
php中没有json格式。但是对于前端来说要 json格式
php提供了一个方法叫 json_encode() 将数据转化为json格式;
php数组:
1.普通数组:$arr=[1,2,3,4];
另一种写法:$arr=array(1,2,3,4);
2.关联数组:
$arr=array("name"=>"zhang","age"=>18);
3.多维数组:
两种情况:
1.$arr=[1,2,3,[4,5,6,[12,45]],7,8,9]; 普通函数的多维数组;
2.$arr=array("name"=>array("zhang","li","wang'),"age"=>array(12,24,36)); 关联数组的多为数组;
多维数组的遍历: (利用递归的特性)
function fn($arr){
foreach($arr as $key=>$value){
if(is_array($value)){
fn($value);
}
else{
echo $value."<br />";
}
}
}
fn($arr);
两个方法:
获取数组长度的方法:count();
判断一个变量是不是数组:is_array();
函数:php的自定义函数和内置函数;
使用关键字function定义函数;
function fn(){} fn()
函数调用的时候,会开辟内存空间,有栈和堆,调用完毕后内存就会被销毁,销毁的顺序,先进后出;
画图解析函数:
代码:
function fn(){
function ff(){
echo "hello world";
}
ff();
}
fn();
画图:
称之为:函数作用域;
四个关键字:global local static parameter
global全局变量都会存在$GLOBALS的超全局变量里面 , $GLOBALS的本质是一个数组;
函数参数;
1.参数传值:
function fn($a){
echo $a;
}
fn(56);
2.默认参数:
function fn($a=23){
echo $a;
}
fn();
3.引用传参:将地址传进去;
函数内部,如果修改了这个地址里的值,函数外也会跟着改
$n=20;
function fn(&$n){
$n++;
echo $n+2;
}
fn($n);
echo $n;
如果传的有默认参数和普通参数同时传,主要注意顺序问题。
在js中函数自身有一个arguments的属性,实参构成的数据集合;
argument的方法:
func_num_args() 获取实参的个数;
func_get_arges() 获取实参构成的集合 因为是数组,输出的时候要用 var_dump();
func_get_age(index) 必填参数,获取具体的某个参数;
递归:
函数内部调用函数本身:
function test($n){
echo $n;
if($n>0){
test($n-1);
}
else{
echo "==="
}
echo $n;
}
test(3); 得到的答案:3210===0123;
画图解析: