码迷,mamicode.com
首页 > Web开发 > 详细

后端 - Lession 01 PHP 基础

时间:2019-07-21 21:21:26      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:就会   学习   初始化   最大值   代码   效率   查找   name   数据   


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 基础

标签:就会   学习   初始化   最大值   代码   效率   查找   name   数据   

原文地址:https://www.cnblogs.com/mhxs/p/11222719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!