后端 - Lession 01 PHP 基础

Posted mhxs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后端 - Lession 01 PHP 基础相关的知识,希望对你有一定的参考价值。


Lession 01 php 基础

1. php 基础

  1. phpinfo():输出版本号

    1. echo:输出文本
    2. php.ini:php的配置文件

2. php 变量

  1. 命名变量必须用 $ 开头

  2. 严格区分大小写

  3. 不能以特殊字符和数字开头(可以用下划线)

  4. unset:销毁变量

  5. isset():判断变量是否存在 isset(var1, var2)

  6. 普通变量的作用域:函数 内部作用域外部作用域 是不相关的

    <?php
       // 变量的作用域
       $test = 'hello';
    
       function test () 
           echo $test;     // 报错, 变量未定义
       
    
       test();

    2.1 静态变量:

    • static 可以定义静态变量
    • 只会初始化一次,会保存上一次的值
    <?php 
    
        // 静态变量
        function total() 
           static $num = 2;
           $num *= 2;
           echo $num;
       
    
       total();
       total();
       total();

    2.2 超全局变量:

    • $GLOBALS:用于在 PHP 脚本中的任意位置访问全局变量
    • $_SERVER:保存关于报头、路径和脚本位置的信息
    • $_REQUEST:接收 html 表单提交的数据
    • $_POST:接收 post 请求数据
    • $_GET:接收 get 请求数据
    • $_FILES:接收 文件 数据
    • $_ENV:是一个包含服务器端环境变量的数组
    • $_COOKIE:获取 请求所带的 COOKIE
    • $_SESSION:获取 请求所带的 SESSION

3. php 单引号 和 双引号区别

  1. 单引号不识别变量,双引号识别变量

  2. 单引号不会转义特殊字符, 双引号可以

    <?php 
    
        // 单双引号区别
        $name = '张三';
        $age = 18;
        $sex = 'man';
    
        echo "$name";   // 张三
        echo '$name';   // $name
    
        // 结论:单引号不解析变量,双引号解析变量
    
        echo "\n";      // 换行
        echo '\n';      // \n
    
        // 结论:单引号不会转义特殊字符, 双引号可以
    ?>
    1. 变量和字符串,用一个点 . 拼接起来
  3. 双引号可以将变量和字符串拼接起来 "$name好好学习" -> "张三好好学习"

    1. 双引号 套 单引号 套 变量,输出外面带单引号的变量 "‘$name‘" -> ‘张三‘
  4. 单引号效率比双引号高


4. 数据类型

1. 标量
    1.  整型:1   2  
    2.  浮点型:1.2    1.3
    3.  布尔类型:true    false
    4.  字符串:单双引号引起来的都是字符串
2. 混合类型(重点)
    1. 数组:array
    2. 对象:object
3. 特殊类型
    1. 空:null
    2. 资源:resource

5. 数据类型转换

  1. 检测数据类型:gettype()
  2. 类型转换
    1. intval():转换为整数,integer
    2. floatval():转换为小数,double
    3. strval():转换为字符串,string
    4. boolval():转换为布尔值,boolean
  3. 判断数据类型的常用函数
    1. is_array()
    2. is_string()
    3. is_bool()
    4. is_float()
    5. is_object()
    6. is_int()
    7. is_numeric():数字字符串会转换成数字,然后再判断,但不能混合非数字字符
    8. is_resource():判断是否是资源
    9. is_null()
    10. is_scalar():判断是否是标量

6. 常量

  1. 定义常量:define(‘abc‘, ‘abc‘);

  2. 常量注意点:

    * 常量可以直接用大写字母和下划线定义,不必加`$`符号
    • 赋值只能为标量

    • 赋值只能为标量
      * 常量不能写到字符串中
      ?

  3. 判断常量是否被定义:defined(‘常量名‘)

    1. 系统常量:

    2. __FILE__:找你的文件

    3. __LINE__:获取代码所在的行数

    4. __DIR__:找到当前文件的目录

    5. PHP_OS:获取系统信息

    6. PHP_VERSION:获取版本信息

    7. __FUNCTION:获取当前函数名

    8. M_PI:圆周率

    9. 了解:

      • __MHTHOD__:获取当前成员方法名

      • __NAMESPACE__:获取当前命名空间的名字
      • __TRAIT__:获取当前 TRAIT 名字(多继承)
      • __CLASS__:获取当前类名

?


7. 运算符

与其他语言差不多


8. 为 false 的几种情况(条件判断)

  1. 字符串和数字:
    • ‘‘0‘0‘0.000
    • 字符串 ‘0.000‘ 为真
  2. 数组:[] (与 js 不同)

9. 流程判断

与其他语言基本相同

拓展:

? 1. 随机数:mt_rand(1, 10);


10. 循环

与其他语言一样,循环内的变量不是局部变量


11.1 函数

定义:function name()

? 1. 函数分为类库函数 和 自定义函数

? 2. 类库函数不可再自定义

? 3. 行参可设置默认值,与 es6 类似

? 4. 没设置默认参数时,实参少了会报错

? 5. 函数不区分大小写

<?php 

    function Name($name = '刘程', $sex = '男') 
        echo '我是:'.$name.' . 性别:'.$sex;
        return true;
    
    
    $temp = name('liucheng');       // 我是:liucheng . 性别:男
    echo '<br />'.$temp;            // 返回值 true
  1. 变量和作用域看标题2 变量
  2. 行参的类型约束(重要)

11.2 函数的 行参 和 返回值


11.2.1 行参约束类型

?行参约束类型后,函数会将传入的数据转换为对应的数据,若无法转换,将报错。

<?php

// 约束函数行参的类型
function test(string $name, int $num) 
    echo gettype($name).'<br />';
    echo gettype($num).'<br />';


test('liucheng', 20);
test(520, 20);
// test(520, "a");     // 报错, 'a' 不是整数

11.2.2 返回值的约束类型

变量括号后面加一个 `:string` , 约束其返回值为 string ,不是 string 就会报错
<?php

// 约束函数返回值
function test(string $name, int $num):string 
    
    return $name.$num;


print_r(test('liucheng', 20).'<br>');

print_r(test(520, 20).'<br>');
echo test(520, "a").'<br>';     

11.2.3 函数的可变参数

? 不用设置行参,即可获取传入的参数

  1. func_get_args() : 获取传入的参数,组成数组。
  2. func_get_arg(n) : 获取对应下标位置的参数
<?php

// 可变参数
function test() 
    $temp = func_get_args();
    echo func_get_arg(1).'<br>';
    return $temp;


print_r(test('liucheng', 20));      // 输出:Array ( [0] => liucheng [1] => 20 )

12. 常用函数


12.1 数学函数

  1. 随机数
    • rand
    • mt_rand:性能比 rand 好 4 倍
  2. 小数
    • floor:向下取整
    • ceil:向上取整
    • round:四舍五入取整
  3. 其他
    • abs:绝对值
    • pi:圆周率
    • M_PI:常量, 与 pi() 函数返回值相同
    • pow:指数表达式
    • max:最大值
    • min:最小值

12.2 字符串内置函数


  1. 大小写转换
    • strtolower:大写转小写
    • strtoupper:小写转大写
    • lcfirst:首字母小写
    • ucfirst:首字母大写
    • ucwords:每个单词首字母大写
  2. 空白处理
    • trim:去掉首位空格
    • ltrim:去掉头部空格
    • rtrim / chop:去掉尾部空格
  3. 查找定位
    • strstr / strchr:检测 字符串 在 另一个字符串 第一次出现到结尾的内容(大小写敏感)
    • strrchr:检测 字符串 在 另一个字符串 最后一次出现 到 结尾 的内容
    • stristr:strstr 忽略大小写版本
    • strpos:返回字符串首次出现的位置(大小写敏感)
    • stripos:strpos 忽略大小写版本
    • strrpos:返回字符串最后一次出现的位置(大小写敏感)
    • strripos:strrpos 忽略大小写版本
    • sbustr:子字符串提取
    • strpbrk:返回 (搜索条件的任意字符) 首次出现到结尾的内容(大小写敏感)
  4. 比较
    • strcmp:二进制比较字符串
    • strcasecmp:strcmp 忽略大小写比较
    • strnatcmp:使用一种"自然排序"算法来比较两个字符串(对大小写敏感),在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。
    • strnatcasecmp:strnatcmp:忽略大小写版本
  5. 顺序

    • str_shuffle:随机打乱字符串顺序
    • strrev:倒序排列字符串
  6. 转换

    • chr:将 ASCII 码值转换为字符

    未完待续。。。


12.3 数组内置函数

以上是关于后端 - Lession 01 PHP 基础的主要内容,如果未能解决你的问题,请参考以下文章

第五阶段:PHP后端开发

后端基础php框架laravel 5.1环境构建(CentOS 6.5)之FastCGI

服务器类型为tengine 后端是php 还是java

后端php项目和数据库启动

提交php表单并从后端重定向

使用 AJAX 在 js 文件中添加 PHP 后端代码