IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 【PHP】语言基础 -> 正文阅读

[PHP知识库]【PHP】语言基础

标记风格(4种)

标记的作用:便于和HTML代码区分开来

XML风格

<?php
	echo "这种就是XML风格";
?>

脚本风格

<script language="php">
	echo "这就是脚本风格";
</script>

简短风格

<?	echo "这种就是简短风格";  ?>

ASP风格

<%	echo "这种就是ASP风格";  %>

简短风格和ASP风格需要在php.ini配置文件中开启之后才可以使用。将 short_open_tagasp_tags 都设为 on ,保存成功后重启阿帕奇Apache。
在这里插入图片描述

注释(3种)

程序执行时,解释器会忽略掉注释部分。

单行注释

//单行注释可以放在代码的上面
$a = 1;//单行注释也可以放在代码的后面

单行注释的注释内容中不要出现 ?> 标志,不然解释器会认为脚本结束,进而不会执行后面的PHP代码。

<?php
	echo "这里被执行了"; //这里是单行注释 ?> 
	echo "这里的代码不执行了";
?>

在这里插入图片描述
从上面的图片可以看出,第二个 echo 后面的代码被当成HTML代码原封不动的输出了。

多行注释

多行注释分为块注释和文档注释。

块注释

/*
$a = 1;
$b = 2;
*/

文档注释

/**
 * 工具类
 * 作者:Maccx
 * E-Mail:bbbbbb
 */
class Tools{
	//...
}

多行注释不允许嵌套使用。
在这里插入图片描述
可以看到,嵌套使用的时候,最下面的多行注释结束符失效了。

#风格注释

echo "这是#风格注释"; # 这是#风格的单行注释

数据类型(8种原始类型)

包括4种标量类型,2种复合类型,2种特殊类型。

标量类型(4种)

类型名称
布尔型boolean
字符串型string
整型integer
浮点型float

布尔型(boolean)

布尔类型只有两个值 truefalse ,这两个值也叫做布尔值,是php的关键字,设定一个布尔型变量,只需要将布尔值赋值给变量即可。

$bool = true; //定义一个布尔型变量 bool

在PHP中,所有变量均以美元符号 $ 符开头,无论是声明变量还是调用变量,都应该使用 $

字符串型(string)

字符串是连续的字符序列,由数字、字母、符号组成。字符串中的每个字符占一个字节。

字符串有 3种 定义方式:

  1. 单引号(’)
  2. 双引号(")
  3. 定界符(<<<)

单引号和双引号定义字符串的区别:
双引号定义字符串,程序执行的时候,会解析字符串里面的变量,将其替换为实际内容。
单引号则将字符串中的变量当作普通字符输出。

$a = 1433223;
echo $str1 = "输出变量a:$a";
echo "<br/>";
echo $str2 = '输出变量a:$a';

在这里插入图片描述
使用双引号定义字符串,要注意(”)和($)这些符号的使用,在字符串中这些符号都需要通过转义符(\)来显示,否则会发生错误。
使用单引号定义字符串,只需要对单引号进行转义,其他符号都可以直接输出。

echo "$小明说:\"你好啊\""; //这里会报警告
echo "<br />";
echo '$小红说:"你也好啊"';

在这里插入图片描述
从上面的代码执行结果可以看出,用双引号定义字符串的时候,如果在$符前面没有存在转义字符,解释器会将$后面的字符串当作一个变量来解析。如果想要显示$符号,则要在其前面加上转义符号。而在单引号定义的字符串中并不存在这些问题。

综上所述,平时我们定义字符串的时候,尽量选择使用单引号,因为省去了解释器寻找和解析变量的消耗。当然,实际情况还是按需定义,存在就有它的意义,并不绝对。

定界符

	$string = <<< str
	第一行<br/>
	第二行<br/>
	第三行
str;
echo $string;

在这里插入图片描述

其中,str为指定的标识符。
结束标识符必须单独另起一行,且前后不允许有空格,标识符前后不允许有其他的字符或者符号,不然就会报错。

整型(integer)

八进制整型:数字前面必须加上 0 ,若八进制中出现了非法数字(8和9),则后面的数字都会忽略(有些版本的PHP会报错)。

十六进制:必须以 0x 开头。

$num_10 = 123;	//定义十进制数
$num_8 = 0123;	//定义八进制数
$num_16 = 0x123;	//定义十六进制数
echo $num_10.'<br/>';	//十进制数直接输出
echo $num_8.'<br/>';	//八进制数会被转成十进制数输出
echo $num_16.'<br/>';	//十六进制数也会被转成十进制数输出

在这里插入图片描述
整型溢出
给定的数值超出了int型所能表示的最大的范围,会被当作float型来处理,这种情况就叫做整型溢出。表达式最后的运算结果超出了范围,也会返回float型。

$num1 = 999;//未超出范围
$num2 = 9999999999999999999999999999999;//31个9,绝逼超出int范围

echo $num1.'<br/>';
echo $num2;

在这里插入图片描述

浮点型(float)

浮点型提供的精度比整型的要大得多(这就是为什么超出了整型了范围会转成浮点型的原因了)。

浮点型数据书写格式(两种)

  1. 标准格式:3.14、-999
  2. 科学计数法格式:3.5E3、849.72E-9

浮点型数据 只是一个近似值 ,所以尽量避免浮点型数据之间比较大小,因为得到的结果往往也是不准确的。

复合数据类型(2种)

数组(array)

数组是一组数据的集合,它把一系列数据组织起来,形成一个可操作的整体。数组中可以包含很多数据,如标量数据、数组、对象、资源等等。

数组中的每个数据叫做一个 元素 ,元素包括索引(键名)和值两个部分。索引可以是数值或者字符串,元素的值可以是多种数据类型。

数组定义格式

$arA = array('val1','val2','val3');//第一种方式
$arB = ['val1','val2','val3'];//第二种方式
//第三种方式
$arC = array(
	'key1'=>'val1',
	'key2'=>'val2',
	'key3'=>'val3'
	);
//第四种方式
$arD['name'] = 'Maccx';
$arD['age'] = 16;

print_r($arA);echo '<br>';
print_r($arB);echo '<br>';
print_r($arC);echo '<br>';
print_r($arD);

在这里插入图片描述
声明数组后,数组中的元素个数可自由更改,只要给数组赋值,数组的长度就会自动增加。

对象(object)

对象是类的实例,使用 new 命令来创建。

特殊数据类型(2种)

资源(resource)

资源是一种特殊的变量,又叫做句柄,保存了到外部资源的一个引用。

外部资源:
像图片、文本文件、数据库等这些相对于PHP文件就叫做外部资源,资源数据类型就是保存了对这些外部资源的引用,它的本质还是一个变量。

$fp = fopen('demo1.txt','rw');//打开当前路径下的demo1.txt文件
var_dump($fp);//查看变量 fp 的类型
fclose($fp);//释放资源

上面代码中。变量fp就是资源变量。
在这里插入图片描述
打印fp变量的结果如上图,其中的resource代表fp的类型,里面的3叫做资源ID,stream代表的是资源的类型。
这里先了解这么多,后面再详细了解资源。

资源是通过专门的函数来创建和使用的。例如上面例子中的fopen()函数。

在使用资源的时候,系统会自动启用垃圾回收机制,释放不再使用的资源。

空值(null)

空值表示没有为该变量设置任何值,空值不区分大小写,null和NULL是一样的。
被赋予空值的情况有下面3种:

  1. 变量未赋任何值
  2. 变量被赋予空值
  3. 变量被unset()函数处理过
isset($val);//判断变量$val是否被设置(是否存在)
unset($val);//销毁变量$val,PHP4后,该函数不再有返回值

is_null($val);//判断变量$val的值是否为null,是则返回true

数据类型转换

类型强制转换

变量前加上用括号括起来的类型名称即可。

转换类型说明
(boolean)转换成布尔类型
(string)转换成字符串类型
(integer)转换成整型
(float)转换成浮点型
(array)转换成数组类型
(object)转换成对象类型

字符串转整型的时候:
以数字开头,则截取到非数字位,否则输出0。

$str1 = '123你好哎呀';//输出123
$str2 = '你好啊321';//输出0

echo (integer)$str1;
echo '<br/>';
echo (integer)$str2;

在这里插入图片描述
布尔型转整型的时候:
false为0,true为1。

$bool1 = true;
$bool2 = false;

echo (integer)$bool1;
echo '<br/>';
echo (integer)$bool2;

在这里插入图片描述
浮点型转整型的时候:
舍去小数部分。

$float = 3.1415926535;
echo (integer)$float;	//输出3

类型转换函数 settype()

语法:
bool settype(mixed var, string type)
参数type有7个值可选:boolean、float、integer、array、null、object、string。
转换成功后返回true。

使用强制类型转换不会影响原变量。
使用类型转换函数会影响原变量。

$float1 = 3.1415926535;
$float2 = 7.23;

echo (integer)$float1;	//输出3
echo '<br/>';
echo $float1;//原变量的值未改变
echo '<br/>';
echo settype($float2,'integer');//输出1,代表转换成功
echo '<br/>';
echo $float2;//原变量的值改变了

在这里插入图片描述

检测数据类型

PHP内置了检测数据类型的系列函数。可对不同类型的数据进行检测,判断其是否属于某个类型,符合则返回true,否则返回false。

函数名称作用说明
is_bool()检测变量是否为布尔型
is_string()检测是否为字符串
is_float() 、is_double()检测是否为浮点型
is_inteser()、is_int()检测是否为整型
is_null()检测是否为空值
is_array()检测是否为数组
is_object()检测是否为对象
is_numeric()检测变量是否为数字或者由数字组成的字符串
$num = 123;
echo is_int($num);//输出1,代表变量是整型
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 10:29:01  更:2021-07-23 10:31:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 17:42:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码