php转义符-【基础】PHP基础知识点全面总结

我每天都会给大家分享一个PHP的基础知识点,希望能够对您有所帮助,花5分钟时间看看。也许您已经知道如何使用它,也许会对您有一点帮助,但最后,感谢您的关注

巩固php基础,给大家分享视频教程【】php转义符,公众号回复:20200202 免费发放提取码!

PHP引用变量引用意味着用不同的名字访问相同的内容

定义参考变量:普通变量的使用和工作原理

$a = range(0,10000);
var_dump(memory_get_usage()); //int(742072)
$b = $a;
var_dump(memory_get_usage()); //int(742096)
$a = range(0,30000);
var_dump(memory_get_usage()); //int(1532648)

参考变量如何工作

$a = range(0,10000);
var_dump(memory_get_usage()); //int(742072)
$b = &$a;
var_dump(memory_get_usage()); //int(742096)
$a = range(0,30000);
var_dump(memory_get_usage()); //int(1135312)

注意:
1、引用变量一旦定义,此变量永远是引用变量,不可能再变回普通变量
2、引用变量可以修改引用的值,例如:
$a = 'a';
$c = 'c';
$b = &$a;
$b = &$c; //修改引用

常量和数据类型 单冒号、双冒号、heredoc、newdoc

单引号:不能解析变量,只能解析单引号(')和反斜线(\)转义字符,比双引号效率高
双引号:解析变量(可使用{}括起来),能解析所有转义字符
heredoc:功能类似双引号(用于大字符串)
newdoc: 功能类似单引号

//heredoc定义
$str = <<<EOT
xxxxxxxxxxxx

EOT;

//newdoc定义
$str = <<<'EOT'
xxxxxxxxxxxxxxxx

EOT;

浮点数:不能用于算术/比较运算,因为浮点数不精确

FALSE 的七种情况:0、0.0、'0'、''、NULL、false、array()

超全局数组(九种类型):

$GLOBALS、$_GET、$_POST、$_SERVER、$_SESSION、$_COOKIE、$_FILES、$_ENV、$_REQUEST

//$GLOBALS包含其他8
//$_REQUEST包含$_GET、$_POST和$_COOKIE

$_SERVER['REQUESR_URI']与$_SERVER['PATH_INFO']区别

http://localhost/aaa/index.php/foo/bar.html?p=222&q=333
$_SERVER['QUERY_STRING'] = "p=222&q=333";
$_SERVER['REQUEST_URI'] = "/aaa/index.php/foo/bar.html?p=222&q=333";
$_SERVER['SCRIPT_NAME'] = "/aaa/index.php";
$_SERVER['PHP_SELF'] = "/aaa/index.php";
$_SERVER['PATH_INFO'] = ‘/foo/bar.html’

php转义符_php转义字符换行是_php转义字符

两种定义方法:define() 和 const

define()函数
const是语言结构
区别
define()不可以定义类常量

预定义常数

__FILE____LINE__

运算符 当放置在 PHP 表达式之前时,该表达式可能生成的任何错误消息都将被忽略

运算符优先级

递增/递减 > ! > 算术运算符 > 大小比较 > (非)相等比较 > 引用 > ^ > | > 逻辑与 && > 逻辑或 || > 三元 > 赋值 > 和 > 异或 > 或

<?php
if($a = 3 > 0 && $b = 3 > 0){
echo 'true';
}else{
echo 'false';
}
?>

// 相当于
if($a = ((3 > 0) && ($b = 3 > 0)))

== 和 === 之间的区别

等值判断(FALSE七种情况)

短路函数:逻辑与 && > 逻辑或 || > 三目 > 赋值 > 和 > 异或 > 或

1、递增/递减不影响布尔值
2、递减NULL值没有效果
3、递增NULL值为1
4、递增/递减位置不同效果不同

流程控制1.for循环(while/do...while)

2.foreach循环

3. while、each()、list()组合

区别:
for循环:只能遍历索引数组
foreach循环:能遍历关联数组和索引数组
whileeach()、list()组合:能遍历关联数组和索引数组

foreach循环遍历数组前,会对数组进行reset()操作
whileeach()、list()组合则不会进行reset()操作

if...elseif...原则:将最可能的放在最上面

switch...case...与if的区别:判断参数的数据类型只能是整型、浮点型、字符串

switch...case...中,如果使用continuebreak等价
如果switch...case...外层还有for,那么使用continue2才可以跳出循环
一般switch要比if性能高

大多数自定义函数和内部函数的变量只有一个作用域,并且这个作用域跨越包含 include 和 require 的文件

如果在非类中引入文件,该文件内部可以使用全局变量和函数
如果在类中引入文件,该文件内部可以使用函数、类的方法、类的属性

有 2 种类型的参数:

1. 价值转移

2.按引用传递(函数改变值,传递的参数必须是变量)

//引用传递函数定义
$a = 1;
function fn(&$a){
return ++$a;
}
echo fn($a); //2

可以返回任何数据类型的值

省略returnphp转义符,默认返回NULL。 如果要返回多个值,请使用链表

函数2种方式返回
1、普通返回
2、引用返回
function &fn(){
$a = 5;
return $a;
}
$b = &fn();

让函数改变函数内部外部变量的值,并使用引用来传递参数

让外部变量改变函数内部变量的值,使用引用返回引入的代码会继承导入位置的作用域,即include或require位置可以使用的变量

包括并要求区分时间和日期函数

date()、strtotime()、mktime()、time()、microtime()、date_default_timezone_set()

php转义字符_php转义符_php转义字符换行是

IP处理功能

ip2long()、long2ip()

打印处理功能

print()、printf()、print_r()、echosprintf()、var_dump()、var_export()

序列化和反序列化函数

serialize()、unserialize()

字符串处理函数

trim()、strrev()

数组处理函数

array_rande()、array_chunk()、array_push()、array_pop()、array_merge()

正则表达式拆分、查找、匹配、替换对象:字符串、字符串、字符串(重要的事情记住3遍)

分隔符:正斜线(/)、hash符(#)、取反符号(~)
通用原子:d(匹配数字)、D、w(匹配数字、字母、下划线)、W、s(匹配空格)、S
元字符:
量词 ?、+、*、{n}、{n,}、{n,m}
通配符 .
范围匹配 []、[-]、[^]
模式修正符:i、m、u、U

主题:如何使用正则表达式将字符串“abc”替换为“abc”?

$str = 'abc';
$pattern = '/(.*)/';
preg_replace($pattern, '\1', $str);

主题:如何使用正则表达式将字符串“abcdef”替换为“abcdef”?

$str = 'abcdef';
$pattern = '/(.*?)/';
$pattern = '/(.*)/U';
preg_replace($pattern, '\1', $str);

注意:默认为贪婪模式 preg_match(), preg_match_all(), preg_replace(), preg_split()

中文分utf-8与gbk两种编码,他们正则表达式不同
utf-8: 0x4e00 - 0x9fa5
模式修正符需要使用u

文件和目录处理用于打开文件,打开时需要指定打开模式

打开模式:r/r+、w/w+、x/x+、a/a+、b、t

r+ 追加写入 w 覆盖 fgets() 以读取一行

fgetc() 读取字符 file_put_contents()

file_get_contents()启用allow_url_fopen(),http协议只能使用只读,ftp协议只能只读或只写目录名:basename(), dirname(), pathinfo()

目录读取:opendir()、readdir()、closedir()、rewinddir()

目录删除:rmdir()

目录创建:mkdir()

//遍历

function loopDir($dir){

if(is_dir($dir)){
if($handle = opendir($dir)){
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo $file.'n';
if(filetype($dir.DIRECTORY_SEPARATOR.$file === 'dir')){
loopDir($dir.DIRECTORY_SEPARATOR.$file);
}
}
}
}

}else{
echo basename($file).'n';
}
}

会话控制

1、使用URL带参数的方式(不安全,不推荐)
2、cookie
3、session

SessionID只能通过URL传递

<a href="next.php?">下一页
简化:
<a href="next.php?">下一页

面向对象的公共、受保护、私有网络合约

1、GET可以收藏成浏览器书签,而POST不行
2、GET可以保存在浏览器历史记录里,而POST不行
3、GET安全性相比POST差
4、GET请求数据编码:application/x-www-form-urlencoded,而POST则除了application/x-www-form-urlencoded编码,还可以是multipart/form-data或者application/json或者text/xml
5、GET请求参数是有长度限制的,url最多2048个字节,而POST没有限制

四个数据代码

开发环境及PHP配置

主要了解CGI、FastCGI、PHP-FPM

CGI:是一种通讯协议(已经过时,性能低下)
FastCGI:也是一种通讯协议,是CGI的升级版(现在推荐使用)
PHP-FPM:是FastCGI进程管理器
php-cgi.exe:是PHP脚本解析器,不是FastCGI进程管理器

PHP有5种PHP运行模式:链接

1、以CGI模式运行PHP

LoadModule cgi_module modules/mod_cgi.so //要加载apache自带模块

<Files ~ ".php$">
Options FollowSymLinks ExecCGI
AddHandler cgi-script .php
FcgidWrapper "D:/BtSoft/WebSoft/php/7.1/php-cgi.exe" .php
</Files>

//如果同时打开多个则会有很多php-cgi.exe,并且在执行完成之后消失:

2、以FastCGI模式运行PHP

FastCGI模式根据进程管理器的不同可以分为:Apache内置进程管理器,PHP-FPM进程管理器

Apache内置进程管理器:
LoadModule fcgid_module modules/mod_fcgid.so //要加载apache模块,该模块要单独下载
<IfModule fastcgi_module>
FastCgiServer /home/weiyanyan/local/apache/cgi-bin/php-cgi -processes 20
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php-cgi


PHP-FPM进程管理器:
LoadModule fastcgi_module modules/mod_fcgid.so
<IfModule fastcgi_module>
FastCgiExternalServer /home/weiyanyan/local/apache/cgi-bin/php-cgi -host 127.0.0.1:9000
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php-cgi

php54之前是一个关系,php54之后又是一个关系。

php54之前,php-fpm(第三方编译)是管理器,php-cgi是协程

php54之后,php-fpm(正式包含),master和pool模式。 php-fpm 与 php-cgi 无关。 php-fpm是一个类库和一个管理器

3、以Apache模块模式运行PHP

LoadModule php5_module "C:/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php

PHP 数组排序

以上就是本文的全部内容,希望对您的学习有所帮助,也希望您支持php自学中心