PHP 基础复习

安装

php官网下载目前最新版本为 8.0, 这里以 windows 作为开发平台, windows 版本有 NTS(Non Thread safe) 跟 TS(Thread Safe) 两种版本, 这里我们选择 NST 版本, 下载完成後找一个地方解压缩, 我这里将解压至 C:\php 里, 後续将 php 所在路径增加到系统变数 path, 使用 command-line 工具, 输入 php -v 确认是否安装成功.

PHP 语言基础

基本语法

当 PHP 解析器解析时会寻找起始标记和结束标记, 也就是 , 这标记告诉解析器开始和停止解析之间的代码, 这种解析方式让 PHP 代码可以被嵌入到各个不同的档案中, 任何起始标记和结束标记之外的都会被 PHP 解析器忽略, 如果档案只包含 PHP 代码, 最好删除结束标记, 避免意外在结束标记後加入空格或换行导致而外的输出, 使用 ;(分号)来表示每个语句的结束, 支持 C 语言, C++, Perl 型式的(comments)注解, 单行注解使用 // 或 # 注解到行末, 多行注解使用 C 语言风格 /* */.

类型

支持 10 种原始资料类型, 四个数值(scalar) 类型: bool, int, float, string, 四个复合(compound) 类型: array, object, callable, iterable, 还有两个特别类型 resource, NULL, 可以使用 var_dump() 函数来看表达式的值与类型, 可以使用 gettype 函数来得到表达式的类型, 要检验某一类型则使用 is_xxx 函数, 其中 xxx 是 bool, int 等等, 要将某变数强制转成某类型, 可以直接使用强制转换如 (bool)$bar 将变数 $bar 转成 bool, 或者使用 settype 函数

bool type

可以为 true 或 false, 不区分大小写, 可以用来搭配控制流程使用, int 0, float 0.0, float -0.0, 空字串, "0", 空 array, 特殊类型 NULL, 空标记生成的 SimpleXML Object 在转换为 bool 时都是 false, 其余值都会被转换成 true.

int type

$a = 123; // 十进制
$a = 0123; // 八进制
$a = 0x1A; // 十六进制
$a = 0b1111; // 二进制
$a = 1_224_567; // PHP 7.4 以後 可以使用底线来增加可读性 

如果某数值发生 integer overflow, 该数值将被解释为 float
转换成 int, 可以使用 intval()将值转成 int, 将 resource 转换成 int, 会得到分配於 PHP runtime 的 unique resource number, bool 转换 true 转成 1, false 转成 0, float 转换 int 会向下取整数, string 转成 int, 如果该字串是由数字组成或前导是由数字组成会转成该数值对应的 int 值, 否则会转成 0, null 转成 0.

string type

单引号, 除了表达单引号可用转译符号(反斜线) 来转译外, 其余使用转译符号不会有转译效果, 变数也不会转译
双引号, 可以使用转译符转译特殊字符如 \n 换行, 也会转译变数, 变数可以用大括号来明确变数名的界线

array type

PHP 的 array, 其实是一个有序映射, key => value 对, 可用 array() 或 [] 来表达

$array = array (
  "k1" => "abc",
  "k2" => "def"
);

$array = [
  "k1" => "abc",
  "k2" => "def",
];

<<:  [Day 12] N+1 问题的解决方式:eager loading

>>:  Day04_学资安的心境呢,有一句话可以参考~虐妻一时爽追妻火丧场~只不过你是那个妻,不是夫~XD"

Day07 NAT 类型

NAT 网路位址转换(英语:Network Address Translation,缩写:NAT)是...

【没钱买ps,PyQt自己写】Day 15 / Project 与档案功能整合,制作出可读取图片并可缩放的 UI 介面 (使用 PyQt + OpenCV)

看完这篇文章你会得到的成果图 前言 我们接下来的讨论,会基於读者已经先读过我 day5 文章 的架构...

为什麽端到端加密应成为企业的重要事项?

近年来,端到端加密已变得非常流行,尤其是在消费者消息传递应用程序市场中。Signal、Telegra...

【Vue】帮元件加上样式啦|修改 bootstrap 变数供全域样式共用 失败

将样式区分为全域样式/区域样式 全域样式:大多页面都会共用到的样式,reset & vari...

D24 Pytest 学习测试

doc文件系统差不多了 来学一下怎麽做测试 首先当然是安装pytest pip install py...