新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 程序开发 > 语言 > php

php基础知识笔记

时间:2020-02-29 11:34:10  来源:  作者:

<a href=http://www.solves.com.cn/it/cxkf/yy/php/ target=_blank class=infotextkey>php</a>基础知识笔记

 

主要参考:

https://www.runoob.com/php/php-intro.html 菜鸟教程

https://www.w3school.com.cn/ W3school

 

1、php定义

PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。

注意:php不是拍黄片,不是编程语言,它是一门弱类型的脚本语言。

 

2、php能做什么?

A、PHP 可以生成动态页面内容

B、PHP 可以创建、打开、读取、写入、关闭服务器上的文件

C、PHP 可以收集表单数据

D、PHP 可以发送和接收 cookies

E、PHP 可以添加、删除、修改您的数据库中的数据

F、PHP 可以限制用户访问您的网站上的一些页面

G、PHP 可以加密数据

 

3、安装 - 集成环境与编辑器

推荐phpstudy + phpstorm

Phpstudy:https://jingyan.baidu.com/article/335530dafae53519ca41c37a.html 百度经验

Phpstorm:https://www.jetbrains.com/ 官网下载

 

编辑器也有大神喜欢用sublime Text 或者 notepad 甚至记事本的。。。

Sublime Text :https://www.sublimetext.com/ sublime 官网

Notepad:https://notepad-plus-plus.org/ notepad 官网

 

其它的集成环境,例如phpenv。

phpenv:https://www.phpenv.cn/

 

php内置Web服务器:

参考文档:https://blog.csdn.net/ltx06/article/details/78933441

命令:php -S localhost:8000

在laravel框架中的内置服务器:php artisan serve

注意:php5.4及以上的内置服务器不应该用于生产环境,但对于本地开发来说是个极好的工具。它不需要ApacheNginx代理就能预览php应用。

4、语法与变量

PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。

PHP 脚本可以放在文档中的任何位置。

PHP 脚本以 <?php 开始,以 ?> 结束。

PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。

通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。

注意:echo - 可以输出一个或多个字符串

print - 只允许输出一个字符串,返回值总为 1

EOF - PHP 定界符 EOF 的作用就是按照原样,包括换行格式什么的,输出在其内部的东西。且可以识别变量。

 

变量是用于存储信息的"容器"。

变量规则:

A、变量以 $ 符号开始,后面跟着变量的名称

B、变量名必须以字母或者下划线字符开始

C、变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )

D、变量名不能包含空格

E、变量名是区分大小写的($y 和 $Y 是两个不同的变量)

PHP是一门弱类型语言,因此不必声明变量的数据类型。PHP 会根据变量的值,自动把变量转换为正确的数据类型。在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。

 

PHP变量的作用域:local (局部);global (全局);static (静态);parameter (参数)

超级全局变量:PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。它也是全局变量的一种。

 

超级全局变量主要有:

$GLOBALS

$_SERVER

保存关于报头、路径和脚本位置的信息

$_REQUEST

用于收集 HTML 表单提交的数据。可以理解$_POST和$_GET 是它的子集。

$_POST

被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。

注意:默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。

$_GET

被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。所有的变量名和值都会显示在 URL 中。

注意:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。

$_FILES

$_ENV

$_COOKIE

$_SESSION

 

5、数据类型

基本类型:

String(字符串)

Integer(整型)

有二进制、八进制、十进制、十六进制等几种方法来表示整数,前面可以正号(+)负号(-)

Float(浮点型),也称作double

Float、Double、Real都是浮点型

Boolean(布尔型)

布尔类型只有两个值,常量 TRUE 或 FALSE。两个都不区分大小写。

Array(数组)

PHP里的数组,相当于其它语言里的数组、列表、字典、集合、栈、队列。

数组有一维数组,二维数组,多维数组。

Object(对象)

有实例化的类都是对象。is_object可以判断一个变量是否是Object 对象,也可以用 (object)来强制转成对象。

NULL(空值)

Callable / Callback(可调用)(回调类型)

Resource(资源类型)

资源 resource 是一种特殊变量,保存了到外部资源的一个引用,比如打开文件、连接数据库、请求网络等。

 

伪类型:

mixed(混合类型)

mixed 说明一个参数可以接受多种不同的(但不一定是所有的)类型。

number(数字类型)

number 说明一个参数可以是 integer 或者 float

callback(回调类型,又称为 callable)

array|object(数组 | 对象类型)

void (无类型)

 

PHP 7的新特性: 标量类型与返回值类型声明

PHP类型的比较:

松散比较:使用两个等号 == 比较,只比较值,不比较类型。

严格比较:用三个等号 === 比较,除了比较值,也比较类型。

 

6、常量

常量是单个值的标识符(名称)。在脚本中无法改变该值。

有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。

注释:与变量不同,常量贯穿整个脚本是自动全局的。

 

设置常量使用函数 define(), 首个参数定义常量的名称,第二个参数定义常量的值,可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。

 

魔术常量:

PHP 向它运行的任何脚本提供了大量的预定义常量。

不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

有八个魔术常量它们的值随着它们在代码中的位置改变而改变:

__LINE__ 文件中的当前行号。

__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

__FUNCTION__自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)

__CLASS__ 自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)

__TRAIT__

__METHOD__ 返回该方法被定义时的名字(区分大小写)。

__NAMESPACE__ 当前命名空间的名称(区分大小写)

Php 7新特性:常量数组 define() 可以代替const 直接定义常量数组。

例如:define(‘sites’,[‘web’ , ’name’ , ‘php’]);

7、运算符

A、算数运算符

php基础知识笔记

 

B、赋值运算符

php基础知识笔记

 

C、字符串运算符

php基础知识笔记

 

D、递增/递减运算符

php基础知识笔记

 

E、比较运算符

php基础知识笔记

 

F、逻辑运算符

php基础知识笔记

 

G、数组运算符

php基础知识笔记

 

Php 7 新特性:NULL合并运算符

PHP 7 新增加的 NULL 合并运算符(??)是用于执行isset()检测的三元运算的快捷方式。

NULL 合并运算符会判断变量是否存在且值不为NULL,如果是,它就会返回自身的值,否则返回它的第二个操作数。

例如:$site = isset($_GET['site']) ? $_GET['site'] : 'PHP开发';

上述代码就可以改写为:$site = $_GET['site'] ?? 'PHP开发';

 

8、条件语句

if 语句 - 在条件成立时执行代码

if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码

if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块

switch 语句 - 在若干条件之一成立时执行一个代码块

 

9、循环语句

while - 只要指定条件为真,则循环代码块

do...while - 先执行一次代码块,然后只要指定条件为真则重复循环

for - 循环代码块指定次数

foreach - 遍历数组中的每个元素并循环代码块

 

10、函数及常用函数

参考:https://blog.csdn.net/alashan007/article/details/78216498

数学函数

l abs 求绝对值

l ceil 进一法取整

l floor 舍去法取整

l fmod 浮点数取余

l pow($a, $n) 返回$a的$n次方

l round 浮点数四舍五入

l sqrt 求平方根

l max 求最大值

l min 求最小值

l Rand($min,$max) 随机数

l Mt_rand($min,$max) 更好的随机数

l Pi 获取圆周率的值

 

字符串操作

l Trim 删除字符串两端的空格或其他预定义字符

l Str_pad($str,$len,$v) 把字符串$str用$v 填充到指定长度$len

l Str_repeat($str,$len) 重复$len次使用指定字符串$str

l Str_split($str) 把字符串分割到数组中

l Strrev() 字符串反转

l Str_shuffle 随机地打乱字符串中的所有字符

l Strtolower 字符串转为小写

l Strtoupper 字符串转为大写

l Ucfirst 字符串首字母大写

l Ucwords 字符串每个单子首字符转为大写

l Chunk_split 将字符串分成小块

l Strtok($str,$token) 切开字符串$str

 

l Explode()

调用: array explode(str $sep,str $str[,int $limit])

输入: $sep为分割符,$str目标字符串,$limit返回数组最多包含元素数 输出: 字符串被分割后形成的数组

 

l Implode()

调用: string implode ( string $glue , array $pieces )

$glue默认, 用''则直接相连

 

l Substr($str, $start, $len) 截取字符串

l Str_replace() 字符串替换操作,区分大小写

调用mix str_replace(mix $search,mix $replace, mix $subject[,int &$num])

输入: $search查找的字符串,$replace替换的字符串,$subject被查找字串, &$num 输出: 返回替换后的结果

 

l Str_ireplace() 字符串替换操作,不区分大小写

l Substr_count() 统计一个字符串,在另一个字符串中出现次数

 

l Substr_replace() 替换字符串中某串为另一个字符串

调用: mixed substr_replace ( mixed $string, string $replacement,int $start [, int $length ] )

 

l Similar_text($str1, $str2) 返回两字符串相同字符的数量

l Strrchr() 返回一个字符串在另一个字符串中最后一次出现位置开始到末尾的字符串

l Strstr() 返回一个字符串在另一个字符串中开始位置到结束的字符串

l Strtr() 转换字符串中的某些字符

l Strpos() 寻找字符串中某字符最先出现的位置

l Strrpos() 寻找某字符串中某字符最后出现的位置

l Str_word_count() 统计字符串含有的单词数

l Strlen($str) 统计字符串长度

l Md5() 字符串md5编码

l Strcasecmp() 不区分大小写比较两字符串

l Strcmp() 区分大小写比较两字符串

 

html标签关联

l Htmlentities() 把字符串转为html实体

l Htmlspecialchars() 预定义字符转html编码

l nl2br() \n转义为<br>标签

l Strip_tags() 剥去HTML、XML以及PHP的标签

l Addcslashes() 在指定的字符前添加反斜线转义字符串中字符 -- addslashes

l Stripcslashes() 删除由addcslashes() 添加的反斜线 -- stripslashes

l Chr() 从指定的 ASCII 值返回字符

l Ord() 返回字符串第一个字符的ASCII值

 

时间函数

l time(): 返回当前的 Unix 时间戳

调用: int time ( void ) 输出: 返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数

l Mktime() 取得一个日期的 Unix 时间戳

l checkdate(): 验证一个格里高里日期

l date_default_timezone_set(): 设定用于一个脚本中所有日期时间函数的默认时区

l getdate(): 取得日期/时间信息

l strtotime(): 将任何英文文本的日期时间描述解析为 Unix 时间戳

l microtime(): 返回当前 Unix 时间戳和微秒数

 

其它常用函数

l intval(): 获取变量的整数值

11、数组、常用数组函数及数组排序

l Array() 生成一个数组

l Array_combine($a,$a2) 生成一个数组,用一个数组$a的值 作为键名,另一个数组$a2值作为值

l Range() 创建并返回一个包含指定范围的元素的数组

l Compact() 创建一个由参数所带变量组成的数组

l Array_fill($start_index, $len, $value) 用给定的填充(值生成)数组

l Array_chunk($arr, $num) 把一个数组分割为新的数组块

l Array_merge() 把两个或多个数组合并为一个数组

l Array_slice($arr, $offset, $len) 在数组中根据条件取出一段值并返回。

l Array_diff() 返回两个数组的差集数组

l Array_intersect() 返回两个或多个数组的交集数组

l Array_search($v, $arr) 数组中查找一个值,返回一个键,没有返回返回假

l Array_splice($a1, $offset, $len, $a2) 把数组中一部分删除用其他值替代

l Array_sum() 返回数组中所有值的总和

l In_array($v, $arr) 在数组中搜索给定的值,区分大小写

l Array_key_exists() 判断某个数组中是否存在指定的 key

l key(): 返回数组内部指针当前指向元素的键名

l current(): 返回数组中的当前元素(单元).

l next(): 把指向当前元素的指针移动到下一个元素的位置,并返回当前元素的值

l prev(): 把指向当前元素的指针移动到上一个元素的位置,并返回当前元素的值

l end(): 将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)

l reset(): 把数组的内部指针指向第一个元素,并返回这个元素的值

l list(): 用数组中的元素为一组变量赋值

l array_shift(): 删除数组中的第一个元素,并返回被删除元素的值

l array_unshift(): 在数组开头插入一个或多个元素

l array_push(): 向数组最后压入一个或多个元素

l array_pop(): 取得(删除)数组中的最后一个元素

l shuffle(): 将数组打乱,保留键名

l count(): 计算数组中的单元数目或对象中的属性个数

l array_flip(): 返回一个键值反转后的数组

l array_keys(): 返回数组所有的键,组成一个数组

l array_values(): 返回数组中所有值,组成一个数组

l array_reverse(): 返回一个元素顺序相反的数组 元素顺序相反的一个数组,键名和键值依然匹配

l array_count_values(): 统计数组中所有的值出现的次数

l array_rand(): 从数组中随机抽取一个或多个元素,注意是键名!!!

l array_unique(): 删除重复值,返回剩余数组

l sort(): 按升序对给定数组的值排序,不保留键名

l rsort(): 对数组逆向排序,不保留键名

l asort(): 对数组排序,保持索引关系

l arsort(): 对数组逆向排序,保持索引关

l ksort(): 系按键名对数组排序

l krsort(): 将数组按照键逆向排序

l natsort(): 用自然顺序算法对数组中的元素排序

l natcasesort(): 自然排序,不区分大小写

l array_column() 返回输入数组中某个单一列的值。

 

12、命名空间

参考:https://www.runoob.com/php/php-namespace.html

13、面向对象

参考:https://www.runoob.com/php/php-oop.html

php基础知识笔记

 



Tags:php   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
以下是帝国CMS官方说明!使用PHP7.*运行环境时,以下两种情况,设置支持PHP7.*操作步骤:1、全新安装帝国CMS时:只需安装时MYSQL接口类型选择mysqli即可支持PHP7系列。2、已经安装好...【详细内容】
2020-03-18   php  点击:(7)  评论:(0)  加入收藏
首先要确认的是你的服务器的系统,Windows、或者linux系统。 要想在Windows系统里运行php网站,可以选择iis或者Apache,如果你单独的去安装,可能会花很多时间去配置这个软件直接问...【详细内容】
2020-03-17   php  点击:(5)  评论:(0)  加入收藏
ThinkPHP5的环境要求如下:PHP >= 5.4.0PDO PHP ExtensionMBstring PHP ExtensionCURL PHP Extension严格来说,ThinkPHP无需安装过程,这里所说的安装其实就是把ThinkPHP框架放入...【详细内容】
2020-03-17   php  点击:(5)  评论:(0)  加入收藏
thinkphp6环境要求php >= 7.1.0,而且必须通过composer方式安装和更新,当然,上一篇教程我们已经安装好了,而且默认安装的php版本是php7.3.4,符合环境要求。那么什么是composer呢?co...【详细内容】
2020-03-15   php  点击:(2)  评论:(0)  加入收藏
首先介绍下在本文出现的几个比较重要的概念:函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计...【详细内容】
2020-03-09   php  点击:(1)  评论:(0)  加入收藏
说明php有许多开源项目比较好像,在自己的机器上用docker搭建了很多。每个docker都是跑了个apache,每个docker里面都有apache。这样好像有点浪费资源,而平时都是用nginx,所以研究...【详细内容】
2020-03-06   php  点击:(3)  评论:(0)  加入收藏
1 字符串1.1 少用正则表达式能用PHP内部字符串操作函数的情况下,尽量用他们,不要用正则表达式, 因为其效率高于正则。没得说,正则最耗性能。str_replace函数要比preg_replace...【详细内容】
2020-03-05   php  点击:(9)  评论:(0)  加入收藏
现在很多人都喜欢用nginx作为Web服务器部署网站,nginx配置起来也是相当的方便,如果你的网站是PHP语言开发的话,下面我们教大家简单的一招快速的隐藏网页的php后缀名,实现一种Pre...【详细内容】
2020-03-05   php  点击:(14)  评论:(0)  加入收藏
最近Django想写个博客,发现博客还真的不好写,为啥?没有好用的富文本编辑器,转战又去学PHP,发现PHP中的CKEditor5不错,但是有个弊端,上传不了图片,经过多次反复看文档,发现了一个比较...【详细内容】
2020-03-03   php  点击:(15)  评论:(0)  加入收藏
什么是WebSocketWebSocket用于在Web浏览器和服务器之间进行任意的双向数据传输的一种技术。WebSocket协议基于TCP协议实现,包含初始的握手过程,以及后续的多次数据帧双向传输...【详细内容】
2020-03-01   php  点击:(10)  评论:(0)  加入收藏
1. 在合适的时候使用PHP &ndash; Rasmus Lerdorf没有谁比PHP的创建者Rasmus Lerdorf明白PHP用在什么地方是更合理的,他于1995年发布了PHP这门语言,从那时起,PHP就像燎原之火,烧...【详细内容】
2020-03-01   php  点击:(11)  评论:(0)  加入收藏
主要参考:https://www.runoob.com/php/php-intro.html 菜鸟教程https://www.w3school.com.cn/ W3school 1、php定义PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器...【详细内容】
2020-02-29   php  点击:(8)  评论:(0)  加入收藏
PHP-8将于今年年底发布,其最令人期待的功能之一就是JIT编译。让我们通过本文来看看这项功能对PHP脚本的速度有怎样的影响?作者 | Pedro Escudero译者 | 弯月,责编 | 郭芮以下为...【详细内容】
2020-02-23   php  点击:(12)  评论:(0)  加入收藏
先下载一份最新版的phpMyAdmin MYSQL管理器解压后得到一个phpMyAdmin的目录(可以改名)把文件夹放到网站根目录找到目录里的config.inc.php文件,打开找到 $cfg[&#39;PmaAbsolute...【详细内容】
2020-02-22   php  点击:(9)  评论:(0)  加入收藏
注意:目录的权限 chomd 777 -R1、安装redis下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz上传phpredis-2.2.4.tar.gz到/usr/local/src目录cd /usr/local/...【详细内容】
2020-02-21   php  点击:(13)  评论:(0)  加入收藏
PHP Server Monitor是使用PHP开发的网络监控工具,用于检查您的网站和服务器是否已启动并正常运行,支持Ping、Tcping、网站等监控,提供了友好的Web的用户界面,方便管理与查看,当服...【详细内容】
2020-02-18   php  点击:(19)  评论:(0)  加入收藏
1. Opcache记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常...【详细内容】
2020-02-06   php  点击:(0)  评论:(0)  加入收藏
项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这些加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理。最常...【详细内容】
2020-01-13   php  点击:(30)  评论:(0)  加入收藏
Apache与Nginx的优缺点比较1、nginx相对于apache的优点:轻量级,同样起web 服务,比apache 占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高...【详细内容】
2020-01-07   php  点击:(22)  评论:(0)  加入收藏
SSL是一种安全协议,其具体的含义我就不在此赘述了,总之对于用户来讲,开启SSL后,很多浏览器会显示此网站“安全”,而不具备SSL安全协议的网站则会显示“不安全”。 采用SSL加密协...【详细内容】
2020-01-06   php  点击:(18)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条