【php】php语法基础

目录


1 php介绍

2 php标记

2.1 语句分隔符

2.2 注释

3 常量 #define #const

规范:常量名用大写表示,如const HELLO = null

3.1 const 和 define的区别

3.2 魔术常量 #todo

php内有8个魔术常量,常量值会随着它们在代码中的位置改变而改变

4 变量 $

在php中,变量不用初始化也可以直接使用,默认值为空值null

4.1 赋值

4.2 引用&,变量本体

4.3 可变变量

4.4 #作用域

4.5 全局变量,局部变量

4.6 输出语句 #echo #print

echoprint 区别不大

4.6.1 echo简写

4.6.2 格式化输出 #printf

4.6.3 #var_dump

4.7 html代码块 #EOF

4.8 变量销毁 #unset #isset

使用isset可以判断变量有没有初始化
使用empty()可以判断空值,但不能判断变量有没有初始化

isset()可以判断变量值是否为null,true表示非空,false表示为空值

5 数据类型 #类型

5.1 #null 空值 #isset #is_null

在松散比较中==null等价于0""false
false无输出,等价于空串'',true松散等价为非0值

变量没有初始化,则默认值为null
is_null(), isset() 可以判断变量值是否为null,true表示非空,false表示为空值

如果变量设置为null,也相当于not set

5.2 字串 string

默认非数字的都是字串

5.2.1 遍历字符串分隔符数组 #explode

返回值:字符串数组

<?php  
  
$merge_bid = "97361,97382,97361,97382";  
  
foreach (explode(',', $merge_bid) as $temp) {  
        $a[]=$temp;  
}  
  
echo $a;

5.2.2 过滤两端空格 #trim #ltrim #rtrim

5.2.3 unicode 特殊字符

5.3 整型

5.4 布尔型 boolean

false无输出,等价于空串'',true松散等价为非0值

echo false; 无输出
echo true; 输出1

5.5 浮点型 float

5.6 变长数组 #array

遍历数组:

5.6.1 关联数组

类似map结构,关联数组可以自定义key,而一般数组的key从下标0开始

遍历关联数组:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MBSrCdi8-1661788270224)(https://cloudimg001.oss-cn-shenzhen.aliyuncs.com/imapostge/20220726151825.png)]

5.6.2 添加元素

5.6.3 获取数组的size #count

5.6.4 数组排序 #sort #asort #ksort #rsort

5.6.5 绑定数组一起排序 #array_multisort #sort

可以只对一个数组排序,也可以绑定其他数组的元素位置一起参与排序

5.6.6 取出二维数组中的列值 #array_column

5.6.7 合并多个数组 #array_merge

如果索引是字串,则相同的索引名,后面的会覆盖前面的
如果索引是数字(默认值),则索引会重新建立,形成连续的索引


$arr = [
    0 => [
        'hello' => 1,
        'cat' => 2,
        'cat3' => 3,
        'cat4' => 4,
        'cat5' => 5,
    ],
    1 => [
        'hello' => 1,
        'cat' => 2,
        'cat3' => 3,
        'cat4' => 4,
        'cat5' => 5,
    ],
    2 => [
        'hello' => 1,
        'cat' => 2,
        'cat3' => 3,
        'cat4' => 4,
        'cat5' => 5,
    ],
    3 => [
        'hello' => 1,
        'cat' => 2,
        'cat3' => 3,
        'cat4' => 4,
        'cat5' => 5,
    ],
    4 => [
        'hello' => 1,
        'cat' => 2,
        'cat3' => 3,
        'cat4' => 4,
        'cat5' => 55555,
    ],
];

$a = array_merge($arr, $arr, $arr);

5.6.8 取数组部分片段 #array_slice

5.7 超全局变量 #全局变量 #关联数组

超级全局变量,是php自带的关联数组

5.7.1 #GLOBALS 获取所有全局变量 #todo

在使用时,可以认为$GLOBALS和global效果相同

5.7.2 获取请求参数 #REQUEST #POST #GET #请求参数 #todo

5.7.3 #SERVER

5.8 运算符

php中没有逗号表达式

5.8.1 算术运算符

5.8.2 比较运算符

5.8.3 逻辑运算符

5.8.4 三目运算符

6 流程控制 if-else

  • 写法一
    如果只有一个语句,可以省略 {}

  • 写法二:if,endif
<?php
if($t==absc):
    echo hello;
elseif($t==abs):
    echo yes;
else:
    echo "<h1>helloC</h1>";
endif;
?>
<?php if($t==absc):?>
<?=hello;?>

<?php elseif($t==abs):?>
    <h1>yes</h1>

<?php else:?>
<h1>helloC</h1>

<?php endif;?>

6.1 #switch 结构

7 循环结构

7.1 #while

7.2 #for

7.3 #foreach

8 函数 #function

函数没有重载(一个函数名只能被声明一次)

8.1 参数

8.1.1 可选参数:给参数设置默认值

8.1.2 引用参数

8.2 匿名函数

8.3 返回值

8.4 在函数内使用全局变量 #global #GLOBALS

全局变量是指声明在函数外的变量,函数内无法访问,其他位置可以访

常量可以在任意位置使用

在使用时,可以认为$GLOBALS和global效果相同

8.5 函数内的静态变量 #static

调用同名函数时,内部定义的静态变量值可以延续使用(调用后,变量不会被销毁,会在内存中被缓存)

8.6 导入外部文件 #require

$db01 = require(__DIR__ . '/../../config/db01.php');

9 类,对象 object #class #oop

类名不分大小写

9.1 构造方法,析构方法 #construct #destruct #todo

9.2 继承 #extends

9.2.1 #重写 #override

9.2.1.1 #final 定义不能被重写的方法

9.2.2 实现接口 #interface #implements

9.2.3 抽象类 #abstract

和java的概念一致

9.2.4 子类调用父类的内容

9.3 修饰符

9.3.1 访问控制符 #public #private #protected

public可以在任意位置访问
protected访问需要继承关系
private只能在当前类内部访问

<?php
class MyClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj = new MyClass();
echo $obj->public; // 这行能被正常执行
//echo $obj->protected; // 报错
echo '<br>';
$obj->printHello(); // 输出 Public、Protected 和 Private
echo '<br>';


class MyClass2 extends MyClass
{
    protected $cur = pri;
    function printHello()
    {
        echo $this->public;  // 继承自MyClass
        echo $this->protected;  // 继承自MyClass
        echo $this->cur;  //当前类
    }
}

$obj2 = new MyClass2();
echo $obj->public; // 这行能被正常执行
//echo $obj->protected; // 报错

echo '<br>';
$obj2->printHello();
echo '<br>';

9.3.2 类常量 #const

类内部无法使用define定义常量,只能用const定义常量

9.3.3 #static 静态变量

9.3.4 范围解析操作符 #parent #self #static

9.3.4.1 例子:self

9.3.5 $this->, $obj-> #this

如果需要调用静态变量、常量,需要用到范围解析操作符::

9.3.5.1 例子:类内部使用全局变量 #global

10 异常处理 #Exception

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值