后端 - Lession 01 PHP 基础

目录

  • Lession 01 php 基础

    • 1. php 基础
    • 2. php 变量
    • 3. php 单引号 和 双引号区别
    • 4. 数据类型
    • 5. 数据类型转换
    • 6. 常量
    • 7. 运算符
    • 8. 为 false 的几种情况(条件判断)
    • 9. 流程判断
    • 10. 循环
    • 11.1 函数
    • 11.2 函数的 行参 和 返回值
    • 12. 常用函数

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 数组内置函数

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

时间: 2024-08-06 09:23:13

后端 - Lession 01 PHP 基础的相关文章

01背包基础 (杭电2602)

01背包问题: 有一个体积为V的背包,有n件物品,每件物品的体积,价值分别为w[i],p[i];要从n件物品中选些放入背包中,使背包里物品的总价值最大. 动态方程:c[i][j]=max(c[i-1][j],c[i-1][j-w[i]]+p[i]). 有关动态方程方面的代码: for (int i = 1; i <= n; i++) { for (int j = 1; j <= total_weight; j++) { if (w[i] > j) { c[i][j] = c[i-1][j

01 动态链接库基础

DLL是一个包含函数和数据的模块, 它们可以被其他模块(应用程序或DLL)使用. DLL可以定义两种函数: <1>导出函数   <2>内部函数 . 导出函数可以被内部或其他模块调用. 内部函数只能在DLL内部被调用. About Dynamic-Link Libraries 动态连接 允许一个模块在加载或运行时,仅仅只需包含定位一个动态库导出函数的信息,而无需将这个动态库整个编译进模块中. 调用一个DLL中的函数,有两种方法: <1> load-time dynamic

Jam&#39;s balance HDU - 5616 (01背包基础题)

Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side are the same weight. Weights can be put on left side or right side arbitrarily. Please tell whether the balance can measure an object of weight M. In

shell编程01—shell基础

01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersync,sshkey批量分发管理 02.shell脚本概念 1.什么是shell shell是一个命令解释器,在操作系统的最外层,负责直接与用户对话,将用户的输入解释给操作系统,并输出操作系统各种各样的处理结果,输出到屏幕返回给用户.这种对话方式可与是交互式的(键盘输入命令,可以立即得到shell的回

&lt;&lt;Python基础教程&gt;&gt;学习笔记之|第01章|基础知识

本学习笔记主要用要记录下学习<<Python基础教程>>过程中的一些Key Point,或自己没怎么搞明白的内容,可能有点杂乱,但比较实用,查找起来也方便. 第01章:基础知识 ------ Jython:      Python的Java实现,运行在JVM中,相对稳定,但落后于Python,当前版本2.5,在TA(Python+Robot)会用到 IronPython:  Python的C#实现,运行在Common Language Runtime,速度比Python要快 >

01 mysql基础一 (进阶)

mysql基础一 1.认识mysql与创建用户 01 Mysql简介 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQLAB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. (开源,免费) #关系型数据库:采用关系模型来组织数据的数据库 #关系:一张二维表,每个关系都有一个关系名,就是表名,互相关联 #模型:行和列(二维),具体指字段跟字段信息 02 进入my

Python入门学习 DAY 01 计算机基础

Python入门 DAY 01 作为一名刚刚学习python的小白,我首先去学习的并不是python语言的基础知识,而是先对计算机的基础进行了一个初步的了解,以下内容便是在学习python之前我去学习到的大致内容. 1.什么是编程语言    语言是一个事物与另外一个事物沟通的介质    编程语言是程序员与计算机沟通的介质    2.什么是编程    编程就是程序按照某种编程语言的语法规范将自己想要让计算机做的事情表达出来    表达的结果就是程序,程序就是一系列的文件    3.为什么要编程  

01前端基础入门

01 基本网格界面显示 1 <!-- 2 作者:offline 3 时间:2018-09-04 4 描述:html基本表格界面设计 5 在最基本的界面设计中,先套用表格界面,再在表格的基础上向里面添加图片和文字 6 因此在设计之初就需要设计好整个模块的表格嵌套结构 7 行之间的合并:colspan 8 列之间的合并:rowplan 9 被合并的单元格必须要从代码中删除 10 因此在布局中有一般是先细分表格多做单元格,然后进行单元格的合并 11 --> 12 13 <!DOCTYPE ht

01.Java基础问题

目录介绍 1.0.0.1 请手写equal方法,讲讲具体的原理?1.0.0.2 请说下String与StringBuffer区别,StringBuffer底部如何实现?String类可以被继承吗,为什么?1.0.0.3 String a=""和String a=new String("")的的关系和异同?String的创建机制?1.0.0.4 static关键字可以修饰什么?static使用的注意事项有哪些?static关键字的特点?1.0.0.5 为什么 Java