1 变量

(1)变量

1
2
3
$x;  //不指定初始值
$x = 1; //执行初始值
//php中的变量不需要特别执行变量的类型,有解析器自动识别

(2)常量

1
2
3
4
5
6
7
8
9
10
<?php
//1.使用define()函数声明
//define("常量名",常量值),这里需要注意,使用define定义常量时,需要使用双引号,否则会有提示警告
define(PI, 3.14);
echo PI;
echo "<br/>";
//2.使用const关键字定义
const PIS = 3.14;
echo PIS;
echo "<br/>";

(3)变量作用域

  • 全局变量:只允许再全局空间再被访问,也就是说再函数内部不能被访问

  • 局部变量:只允许再函数内部被访问

    • 如果想要再函数内部访问全局变量

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      //   1.全局空间存在该变量
      <?php
      $a = 123;
      function test()
      {
      global $a;
      echo $a;
      }
      test();
      // 2.全局不空间不存在该变量,系统会自动创建
      <?php
      //$a = 123;
      function test()
      {
      global $a;
      $a = 444;
      echo $a;
      }
      test();
  • 超全局变量:没有访问限制,可以再全局空间或者函数内部被访问

(4)静态变量

  • 生命周期延长,类似Java中的静态变量
  • 一般用来统计当前函数被调用的次数
  • 为了统计当前函数被多次调用的结果(自加)
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
static $a = 123;
echo $a;
echo "<br/>";
function test()
{
static $b = 555;
echo $b++;
echo "<br/>";
}
test();
test();
test();

2 流程控制

(1)for

1
2
3
4
5
6
<?php for ($i = 1; $i < 10; %i++) { ?>
//这里写HTML代码
<?php }?>
可写成:
<?php for ($i = 1; $i < 10; %i++): ?>
<?php endfor; ?>

(2)foreach

1
2
3
4
5
6
7
8
9
<?php
$a = array(
111,
222,
);
foreach ($a as $each) {
echo $each;
echo "<br/>";
}

3 函数

(1)回调函数

所谓的回调函数,就是指调用函数时并不是向函数中传递一个标准的变量作为参数,而是将另一个函数作为参数传递到调用的函数中,这个作为参数的函数就是回调函数。通俗的来说,回调函数也是一个我们定义的函数,但是不是我们直接来调用的,而是通过另一个函数来调用的,这个函数通过接收回调函数的名字和参数来实现对它的调用。

PHP 中的回调函数与 C、Java 等语言的回调函数的作用是一模一样的,都是在函数执行的过程中,跳转到回调函数中,当回调函数执行完毕之后,再回到之前的函数处理接下来的程序。

1
2
3
4
5
6
7
8
9
10
11
12
<?php
function test($function_name, $args1)
{
return $function_name($args1);
}

function add($num1)
{
return $num1;
}
$a = 1;
echo test("add", $a);

(2)匿名函数

1
2
3
4
5
6
7
<?php
//匿名函数需要一个变量来接受,最后还需要一个分号结束
$x = function ($a) {
echo "这是一个匿名函数: " . $a;
echo "<br/>";
};
$x(4);

(3)函数闭包

函数内部的局部变量在函数执行结束之后,没有被释放,这是因为函数内部定义的匿名函数还有对该局部变量的引用。

  • 函数内部的匿名函数如果需要使用函数内部的局部变量,需要使用use关键字。
  • 匿名函数被return给外部使用,此时会使用闭包
1
2
3
4
5
6
7
8
9
10
11
<?php
function test()
{
$name = __FUNCTION__;
$innerFunction = function () use($name) {
echo $name;
};
return $innerFunction;
}
$outter = test(); //此时,test()方法执行结束,但是下面运行$outter()之后任然可以打印出$name的值,说明$name没有立即释放。
$outter();

(4)伪类型

  • PHP中不存在的类型
  • 但是程序员通过伪类型,可以更好的查看操作手册,从而更好的学习

伪类型主要包括以下两种:

  • Mixed:多种类型的混合
  • Number:数值型(整形和浮点型)

比如gettype(),具体手册地址:https://www.php.net/manual/zh/function.gettype

(5)系统内部函数

1 关于输出的函数

  • echo:可以输出一个或多个字符串
  • print:只允许输出一个字符串,返回值总为 1
  • print_r:以易于理解的格式打印变量
1
2
3
4
5
6
7
8
9
10
<?php
$b = array(
1 => 5555,
2 => 99080
);
echo $b;
echo "<br/>";
print_r($b);
echo "<br/>";
print $b;

2 关于时间的函数

  • date():按照一定的格式化要求输出时间
  • time():输出时间的毫秒数
  • mircotime():输出时间的微秒数(一般用来压力测试时显示程序运行的时间)
  • strtotime():将英文的字符串转换成时间
1
2
3
4
5
6
7
<?php
ini_set('date.timezone','PRC');
echo date("Y年m月d日 H:i:s");
echo "<br/>";
echo time();
echo "<br/>";
echo microtime();

3 常用数学函数

  • max():取最大值

  • min():取最小值

  • rand():取某个区间的随机值

  • mt_rand():作用和rand()类似,底层不一样,但是效率比rand()更高,建议使用这个函数

  • round():四舍五入

  • ceil():向上取整

  • floor():向下取整

  • pow():指数计算,pow(2, 3):
    $$
    2^3=8
    $$

  • abs():取绝对值

  • sqrt():开平方根

4 关于函数的函数

  • function_exists():判断当前函数是否在内存中(可以帮助用户不去使用一个系统中不存在的函数,增加了安全性)

  • func_get_arg():获取自定义函数中指定位置的参数

  • func_get_args():获取自定义函数中所有参数

  • func_num_args():获取自定义函数中参数的个数

1
2
3
4
5
6
7
8
<?php
function test($a, $b, $c) {
var_dump(func_get_arg(2));
var_dump(func_num_args());
var_dump(func_get_args());
}

function_exists("test") && test(100,200,300,400);

写在最后

欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
微信公众号