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知识库 -> PHPER的自我修养(基础篇) -> 正文阅读

[PHP知识库]PHPER的自我修养(基础篇)

- - 写这篇文章的原因 - -

  • 学了PHP有一年多了,万丈高楼平地起,基础知识要整理。

1、输出语句 “echo”、“print”、“print_r”、“var_dump”的区别。

  1. echo:输出字符串,简单类型变量的值,多个值之间用逗号分隔,无返回值。
  2. print():只能打印出简单类型变量的值(如int,string),成功显示则返回true,否则返回false。。
  3. print_r():可以打印出简单、复杂类型变量的值(如数组,对象)
  4. var_dump():输出所有类型的详细信息
  5. Echo,print是PHP语句, print_r是函数,

2、PHP的数据类型

整型检测函数
整型 Integeris_integer()
浮点型 Floatis_float()
布尔型 Booleanis_bool()
字符串 Stringis_string()
数组 Arrayis_array()
对象 Objectis_object()
空值 NULLis_null()

3、常用的数组函数

  1. count():数组元素个数
  2. max() ; min():数组最大最小元素
  3. array_sum():数组元素总和
  4. in_array():是否存在某个值
  5. array_search():是否存在值并返回索引
  6. array_key_exists():是否存在某个键
  7. array_keys():返回所有键于新数组
  8. array_values():返回所有值于新数组
  9. sort() ; rsort() 按值升降序排序(键自动修改为整数)
  10. ksort() ; krsort() 按键升降序排序(保持原来的键)
  11. array_merge():合并数组到新数组
  12. 更多可参考以下网址

https://www.php.net/manual/zh/ref.array.php

4、(static)声明的 静态变量 与(global)声明的全局变量有什么区别

  1. 函数内定义的静态变量虽然在函数执行完后,其值继续保存,不会销毁,但在函数外依然不可使用,而在函数内经global声明的全局变量在函数外可以使用。
  2. static声明的静态变量只初始化一次,global声明的全局变量会重复初始化。以下代码的运行结果是“012- - -000”
<?php

function sta(){
	
	static $s = 0;
	echo $s;
	$s++;
}
sta();sta();sta();
echo '<br>';
function gla(){
	
	global $g;
	$g = 0;
	echo $g;
	$g++;
}
gla();gla();gla();
?>

5.1、require 和include的区别

疑问1:

  • 翻阅许多资料都说include引入文件的时候,如果碰到错误,会给出错误提示,并继续运行下边的代码; require引入文件的时候,如果碰到错误,会给出错误提示,并停止运行下边的代码。

include引入不存在的文件:
在这里插入图片描述
require引入不存在的文件:
在这里插入图片描述
如果错误是引入不存在的文件,则结果和上述一致。

  • 但若是引入PHP文件中的代码存在致命错误如语句结尾分号漏写、使用全角符号、关键字拼错等,则 require 和 include 的结果一致,都是只执行引用文件语句以上的代码,然后显示报错信息,不执行 引入的文件的代码以及引入文件语句以下的代码

inre.php文件代码

<?php 
// inre.php
echo 'inre'.'<br>';
echo 'inre'.'<br>'
echo 'inre'.'<br>';

include.php文件代码 ( include 包含 inre.php )

<?php 
// include.php
echo '---include!!!'.'<br>';
include "inre.php";
echo 'include!!!---'.'<br>';

运行结果
include.php运行结果


require.php文件代码 ( require 包含 inre.php )

<?php 
// require.php
echo '---require!!!'.'<br>';
require "inre.php";
echo 'require!!!---'.'<br>';

运行结果
require.php运行结果


疑问2:

  • include 是有条件包含函数,require是无条件包含函数,但执行以下代码,结果均未包含对应文件。
    (PHP版本为5.6.40 / 7.4.9 )

在这里插入图片描述
其他区别:

  1. include有返回值,require没有。
  2. include每次执行都要进行读取和评估,require执行时只需要处理一次。因此被包含文件里的代码需要多次执行时用require效率比较高。
  3. require通常放在程序的最前面,实际上就是把代码替换到require语句,作为程序的一部分。而include一般放在流程控制的处理部分。PHP程序网页在执行到该行代码时才将文件读进来,这种方式可以把程序执行时的流程简单化。

5.2、那什么时候用require,什么时候用include呢?

  1. 针对以上第一点,视实际情况是否需要返回值而论。
  2. 针对以上第二点,当被包含文件里的代码需要多次执行时,用require效率比较高。
  3. 针对以上第三点,一些资料说在每次循环时,将不同的文件包含进来,实现此功能必须用include,
    但…当我尝试用require写,其实也可以。这可直接给我整不懂了…难道是我忽略了什么细节??!尝试清缓存,换浏览器,把PHP版本7.4.9换到5.6.40,结果一样emmmm…
    在这里插入图片描述

6、GET 和 POST 的区别

GETPOST
传递的数据在url后面,以&分隔用户看不到数据
传递的数据有长度限制 (1024字节)传递的数据没有长度限制
相同点
都是以键值对的方式存取 $_GET[‘key’] 、 $_POST[‘key’]
表单中name属性作为键 ,value作为值
  • 另外,当不明确是GET请求还是POST请求时,可以用$_REQUEST变量,同样以键值对的方式存取 $_REQUEST[‘key’] ,其中包含 GET请求传递的数据,也包含了POST请求传递的数据。

7、SESSION 与 COOKIE的区别

  1. 一个cookie大小限制为4k,session大小可以在php.ini里设置。
  2. SESSION存储在服务器端,COOKIE保存在客户端。Session比较安全,cookie用某些手段可以修改,不安全。
  3. Session保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由php配置文件的session.save_path指定。Session文件是公有的。Session的缺点:因为保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。

8、PHP 中传值与传引用的区别

  1. 按值传递:函数范围内对值的任何改变在函数外部都会被忽略。
  2. 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改。
  3. 优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。

9、文件操作

$mode描述
r只读
r+读写
w重写
w+读取、重写
a追写
a+读取、追写
x新建并写入
x+新建并读写

10、时间函数

参数描述
Y年份 4位数字,如 2021
y年份 2位数字,如 21
M月份 3个字母英文单词缩写,如 Aug
m月份 补0,如 08
n月份 补0,如 8
d 补0,如 08
j 补0,如 08
dS 加th后缀,如08th
jS 加th后缀,如8th
G24小时制,不补0
g12小时制,不补0
H24小时制,补0
h12小时制,补0
i分钟数,补0
s秒数,补0
D星期 3个字母英文单词缩写,如 Wed
l星期 完整的英文单词,如 Wednesday
w数字表示星期几,如 3
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:23:01  更:2021-08-12 16:23:07 
 
开发: 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/10 22:34:09-

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