写点什么

领导说 PHP 已经过时了,让我滚!!

发布于: 2 小时前
领导说PHP已经过时了,让我滚!!

前言

前言: 

    作为一名程序员,我们应该都听过这样一个梗:PHP 编程语言,是世界上最好用的编程语言~~~下面来和大家看一下,什么是 PHP?


  PHP 又名超文本预处理器,是一种通用开源脚本语言。PHP 主要适用于 Web 开发领域,语法吸收了 C 语言、Java 和 Perl 的特点,利于学习,使用广泛。其独特的语法混合了 C、Java、Perl 以及 PHP 自创的语法。它可以比 CGI 或者 Perl 更快速地执行动态网页。用 PHP 做出的动态页面与其他的编程语言相比,PHP 是将程序嵌入到 HTML 文档中去执行,执行效率比完全生成 HTML 标记的 CGI 要高许多;PHP 还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

 

了解了 PHP 的基本概念后,下面我来和大家分享一下近期我整理的有关 PHP 的基础知识,希望对你的 PHP 学习有所帮助~

 

一、PHP 网页基础

一、静态网站 &动态网站

  • 静态网站:(纯 HTML 页面,页面固定,不会变化),没有与后台服务器的交互,没有数据库的支持。

  • 动态网站:(可以根据交互情况动态显示不同内容),需要与后台服务器进行数据交互,需要数据库的支持。

二、支持动态网站的语言

  • Java---JSP

  • PHP----PHP

  • asp----asp

三、常见的服务器

  • Apache:Apache 公司旗下服务器,用于解析 PHP 类网站

  • Tomcat:Apache 公司旗下的另一款服务器,用于解析 JSP 类的网站;

四、常见的数据库

mysql,Access,Oracle,SQLServer……我们 PHP 一般匹配 MySQL 使用。当然,PHP 可以连接几乎所有的主流数据库。

五、B/S C/S

  • B/S:浏览器/服务器结构。用户只需要通过浏览器即可访问的网站。大部分操作功能集中在后台服务器。

  • C/S:客户端/服务器结构。用户需要安装客户端使用的程序。客户端可以分担一定的操作功能。

六、常见的开发 PHP 集成环境


安装一个软件,内置多种开发需要的软件或语言环境 Wamp:windows+Apache+mysql+PHPLamp:Linux+Apache+mysql+PHPPHPStudy:APPServer:


PHP 开发首选 Linux 系统,但是 PHP 能够友好的兼容各种操作系统。(Windows, Linux, Unix, MacOS……)

 

二、PHP 入门基础


  1. PHP 中"+"只有运算功能,没有连接功能。连接功能用"."连接。

  2. 关键词:PHP 标记的种类、PHP 中的指令分隔符、PHP 中的变量、PHP 中算 false 的情况、PHP 中字符串的声明、PHP 中的伪类型、PHP 中的数据类型转换、PHP 中判断类型、PHP 中的输出语句、PHP 中的常量

一 PHP 标记的种类

PHP 文件中,如果要使用 PHP 语法,必须要将 php 语言放到标记当中。PHP 支持如下四种标记方式;

①<?php ?>这是 PHP 官方推荐的写法,也是我们主要采用的写法!这种标签可以插入到 HTML 文档的任意位置;

注:如果页面中,只有 PHP 语言,推荐省略结束表示'?>'。原因:如果包含结束符号,在导入 PHP 文件时,可能会将文件最后的多余换行导入进来。

②<script language="php"></script>长标记写法。这种写法,总是可以使用,但是我们不推荐。

③<? ?>短标记风格。默认不开启,需要修改 php.ini 文件中"short_open_tag = On"打开。但是,由于和 XML 中的标记冲突,不推荐使用。

④<% %>ASA 风格。默认不开启,需要修改 php.ini 文件中"asp_tags = On"打开。但是,由于和 ASP,JSP 中的标记冲突,不推荐使用。

 

二 PHP 中的指令分隔符

1、PHP 中的“结构定义语句”(分支,循环,类,函数等{}结尾),不需要使用分号结尾。

2、PHP 中的“功能执行语句”,不用{}结尾的,必须使用分号结尾。

3、特例:最后结束标签?>前的最后一条语句,可以省略分号。

 

三 PHP 中的变量

1、PHP 中的变量,声明与使用,必须用 $开头。

2、PHP 是一种弱类型语言,变量其实并不需要声明,可以直接给变量赋任何类型的

3、PHP 中可以使用连等同时声明多个变量,而不能使用逗号分隔;eg:$num1 = $num2 = $num3 = 5;

4、常用变量函数:unset();删除并释放变量;isset();检验变量是否设置;empty();检验变量是否为空(未设置或值为 null 都算空);

5、变量的命名:只能由数字,字母,下划线组成,开头不能是数字。而且,PHP 中变量区分大小写!$name $Name $NAME 都是不同变量!但是,PHP 内置函数或类名不区分大小写!echo EcHo 都是有效的!

6、PHP 中的数据类型(8 种)

>4 种标量类型

布尔型:Boolean 

整型:Integer 

浮点型:Float/Double 

字符串:String

>2 种复合类型

数组:Array 

对象:Object

>2 种特殊类型

资源:Resource 

空:null


7、整型的范围:-2^31~(2^31-1),超过这个范围,自动转为浮点型

 

四 PHP 中算 false 的情况

1、Boolan false

2、整形 0

3、浮点型 0.0

4、字符串"" "0" ("0.0" "000" 都算对!只有一个 0 算错!)

5、空数组

6、空对象 仅在 PHP4 算 false。其他版本,对象都算 true。

7、null 和尚未定义的变量;

8、所有资源都算对!(除 PHP4,所有对象都算对!!!

 

五 PHP 中字符串的声明

PHP 支持三种方式声明字符串:


1、'':

2、"":

3、<<<(定界符):$str = <<<s(定界标识符)//定界符声明字符串,通过<<<(定界标识符)开始//遇到顶格的定界标识符结束!!一个空格都不能有!!//定界标识符可以是任意字母,只需要保证开始和结束一致即可!s;(顶格的定界标识符)

4、三种声明方式的区别:

①定界符功能,默认与双引号相同。(但是定界符中可以放双引号)

②单引号中,不能解析变量,而双引号、定界符都可以解析变量。注:双引号解析变量时,需注意变量名后需用"hahaha{$num}hahaha" "hahaha${num}hahaha"均可!

③单引号中可以放双引号,双引号中可以放单引号。但是不能放自身相同类型的引号。

④单引号中不能使用转义字符(除了单引号''本身,转义符\本身),双引号中可以使用转义字符。

 

六 PHP 中的伪类型

伪类型:并不是一种真实存在的数据类型。它的存在,仅仅是告诉程序员可以是哪种,哪些数据类型,常用于撰写帮助文档时使用。

  • mixed:代表参数可以是多种不同数据类型。

  • Number:代表参数可以是 Integer 或者 Float。

  • callback:代表参数可以是一个回调函数。


七 PHP 中的数据类型转换

1、自动类型转换:表示运算的时候,Boolean,Null,String 等类型,会先自动转为 Integer 或 Float 类型 null-->0true-->1false-->0String 转非数值字符前的数字,没有的话转为 0 "123a"-->123 "a123"-->0

2、强制类型转换:根据我们的需要,强制将变量转为其他类型的变量。$新变量 = (新类型)$原变量; $str = (String)1;//新类型,可以使用全拼,也可以使用缩写。Integer/int Boolean/bool 都行。


可以强制转换的类型如下:

①使用()声明新类型强转:(int),(integer) - 转换成整型(bool),(boolean) - 转换成布尔型(float),(double),(real) - 转换成浮点型(string) - 转换成字符串(array) - 转换成数组(object) - 转换成对象

②使用 setType();函数强转:bool setType(mixed var,String type);第一个参数表示任何类型的变量,第二个参数表示字符串类型的数据类型,返回 Boolean 结果。

③两种转换的区别:

第①种:是将转换之后的结果,赋给新变量;

第②种:直接修改了原变量的数据类型。

 

八 PHP 中判断类型

is_bool():判断是否是布尔型

is_int()、is_integer()和 is_long():判断是否为整型。

is_float()、is_double()和 is_real():判断是否为浮点型

is_string():判断是否为字符串

is_array():判断是否为数组

is_object():判断是否为对象

is_resource():判断是否为资源类型

is_null():判断是否为 null

is_scalar():判断是否为标量

is_numeric():判断是否是任何类型的数字和数字字符串

is_callable():判断是否是有效的函数名

 

九 PHP 中的输出语句

echo "……";输出变量的值 var_dump(num);输出变量的数据类型 &值[&一些其他信息]print_r(arr);

专门用于打印数组//单行注释

/* * 多行注释 */

/*** 文档注释*/


# 脚本注释 #echo"①形式";

 

十 PHP 中的常量

1、常量的定义:bool define(String 常量名,mixed 常量值[,bool 是否区分大小写]);

2、常量的注意事项:

①常量定义,只能使用 define()函数;

②常量名,原则上要求必须使用大写声明。而且必须不能带 $符号($只能是变量);

③常量声明以后,默认全局范围有效。没有作用域之说。

④常量不但不能改,而且不能删!unset,setType 等函数均无效

⑤常量默认区分大小写!!!但是,可以在声明常量时,将 define 第三个参数设为 true,即可改为不区分大小写。

⑥常量必须使用 define()定义后才能使用。如果使用未声明常量,则默认转为常量字符串。但是,会有警告。var_dump(NUM);-->String "NUM"

⑦常量的值只能是标量 Boolean String Float Integer3、可以使用 echo constant("NUM");读取常量值!注意!!!可以使用 get_defined_constants(),获取所有已定义的常量!!包括系统自定义的 N 多个常量。


我是一名渗透测试工程师,为了感谢读者们,我想把我收藏的一些网络安全/渗透测试学习干货贡献给大家,回馈每一个读者,希望能帮到你们。


干货主要有:


①2000 多本网安必看电子书(主流和经典的书籍应该都有了)


②PHP 标准库资料(最全中文版)


③项目源码(四五十个有趣且经典的练手项目及源码)


④ 网络安全基础入门、Linux 运维,web 安全、渗透测试方面的视频(适合小白学习)


⑤ 网络安全学习路线图(告别不入流的学习)


⑥ 渗透测试工具大全


⑦ 2021 网络安全/Web 安全/渗透测试工程师面试手册大全


由于篇幅有限,资料都放在我的个人文档,需要的点击下方自行领取

资料领取

最后,感谢您的关注和阅读!!

用户头像

我是一名网络安全渗透师 2021.06.18 加入

关注我,后续将会带来更多精选作品,需要资料+wx:mengmengji08

评论

发布
暂无评论
领导说PHP已经过时了,让我滚!!