DAY5:PHP 简单语法与使用

PHP ( hypertext preprocessor )简单语法与使用

1、PHP 语法

​ 弱类型语言

1.1、基本的 PHP 语法

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

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

<?php
 // PHP 代码
 ?>

PHP 文件的默认文件扩展名是 “.php”。

PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码。

实例演示:

<!DOCTYPE html>
<html>
<body>

<h1>My first PHP page</h1>

<?php
echo "Hello World!";
?>

</body>
</html>

HTML中br标签用法:

1.br标签作用:换行
2.br标签格式:<br/>

PHP中br标签用法

<?php
echo <br>;
?>

请添加图片描述

显示作用函数
1.echo
输出一个或者多个字符串。

2.print
和 echo 最主要的区别: print 仅支持一个参数,并总是返回 1。

3.print_r
打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素

4.var_dump
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

5.var_dump 和 print_r 的区别
var_dump 返回表达式的类型与值而 print_r 仅返回结果,相比调试代码使用 var_dump 更便于阅读。

6.sprintf			

7.scandir			
扫描目录 返回指定目录中的文件和目录的数组

2、PHP 中的注释

<!DOCTYPE html>
 <html>
 <body>

<?php
 // 这是 PHP 单行注释

 /*
 这是 
 PHP 多行
 注释
 */
 ?>

 </body>
 </html>

2、PHP 变量

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

<?php
$x=29;
$y=40;
$z=$x+$y;
echo $z;
?>
//输出结果为 69

PHP 变量规则:

变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )$_GET $_POST $_REQUEST
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)

2.1、创建(声明)PHP 变量

PHP 没有声明变量的命令。

变量在您第一次赋值给它的时候被创建

注意:当给一个文本值给变量时,记得在文本值两侧加上"引号"

2.2、PHP 变量作用域

local			#本地
global			#全局
static			#静态的
parameter		#参数

2.3、局部和全局作用域

全局变量可以被脚本中的任何部分访问而在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问

<?php
$x=5; // 全局变量

function myTest()
{
    $y=10; // 局部变量
    echo "<p>测试函数内变量:<p>";
    echo "变量 x 为: $x";
    echo "<br>";
    echo "变量 y 为: $y";
} 

myTest();

echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?> 

请添加图片描述

3、用法

3.1、打印按钮

<?php
echo "<input type='button' value='test'>";
?>

请添加图片描述

3.2、字符串

<?php

//字符串
$str = '123';

//字符串拼接
$str2='123'.'456'

?>

3.3、嵌套

<?php
$a=123;
$b='he{$a}llo';
echo $b;
?>

请添加图片描述

3.4、数组

一个能在单个变量中存储多个值的特殊变量

array() 创建数组

foreach 遍历关联的数组
$age = array("a"=>"10","b"=>"20","c"=>"30");
foreach ($age as $a =>$a_value){
	echo "Key=" . $a . ",Value " . $a_value;
	echo '<br>';
}
count() 		读取数组的长度
$age = array("a","b","c","d");
echo count($age);				// 4

在 PHP 中,有三种类型的数组:

数值数组	#带有数字 ID 键的数组
关联数组	#带有指定的键的数组,每个键关联一个值
多维数组	#包含一个或多个数组的数组
自动分配 ID 键(ID 键总是从 0 开始):
$cars=array("Volvo","BMW","Toyota");

人工分配 ID 键:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota"; 
$arr1 = array('123',123)
3.4.1、关联数组

关联数组是使用您分配给数组的指定的键的数组。

这里有两种创建关联数组的方法:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

or:

$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43"; 

随后可以在脚本中使用指定的键

示例:

<?php
$age=array("a"=>"35","b"=>"37","c"=>"43");
echo "a is " . $age['a'] . " fffff.";
?> 				// a is 35 fffff.

遍历关联数组:

遍历并打印关联数组中的所有值,可以使用 foreach 循环

<?php
$age=array("a"=>"35","b"=>"37","c"=>"43");
 
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}							
?>			

输出为:

Key=a, Value=35
Key=b, Value=37
Key=c, Value=43

3.5、数组排序

PHP 数组排序函数:

sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列
3.5.1、sort() 函数-对数组进行升序排列

示例:

<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
?> 

输出为:

Array ( [0] => BMW [1] => Toyota [2] => Volvo ) 
3.5.2、rsort() - 对数组进行降序排列

示例:

<?php
$numbers=array(4,6,2,22,11);
rsort($numbers);
?> 

输出为:

Array ( [0] => 22 [1] => 11 [2] => 6 [3] => 4 [4] => 2 ) 
3.5.3、asort() - 根据数组的值,对数组进行升序排列

示例:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
?> 

输出为:

Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 ) 
3.5.4、ksort() - 根据数组的键,对数组进行升序排列

示例:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
?> 

输出为:

Array ( [Ben] => 37 [Joe] => 43 [Peter] => 35 ) 
3.5.5、arsort() - 根据数组的值,对数组进行降序排列

示例:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
?> 

输出为:

Array ( [Joe] => 43 [Ben] => 37 [Peter] => 35 ) 
3.5.6、krsort() - 根据数组的键,对数组进行降序排列

示例为:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);
?> 

输出为:

Array ( [Peter] => 35 [Joe] => 43 [Ben] => 37 ) 

3.6、浮点数

​ var_dump() 方法,判断一个变量的类型与长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型。显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

<?php 
$x = 10.365;
var_dump($x);
echo "<br>"; 
$x = 2.4e3;
var_dump($x);
echo "<br>"; 
$x = 8E-5;
var_dump($x);
?>
输出为
float(10.365)
float(2400)
float(8.0E-5)

3.7、整数

整数必须至少有一个数字 (0-9)
整数不能包含逗号或空格
整数是没有小数点的
整数可以是正数或负数
整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)
<?php 
$x = 5985;
var_dump($x);
echo "<br>"; 
$x = -345; // 负数 
var_dump($x);
echo "<br>"; 
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>

请添加图片描述

3.8、对象 object

对象数据类型也可以用于存储数据。

在 PHP 中,对象必须声明。

首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。

然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:

<?php
class Car
{
  var $color;
  function __construct($color="green") {
    $this->color = $color;
  }
  function what_color() {
    return $this->color;
  }
}
?>

输出结果 	herbie: Properties color = white 

3.9、空值 NULL

NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。

NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。

可以通过设置变量值为 NULL 来清空变量数据:

<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>

输出结果	NULL 

3.10、资源类型 Resource

PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。

常见资源数据类型有打开文件、数据库连接、图形画布区域等。

由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。

使用 get_resource_type() 函数可以返回资源(resource)类型:

get_resource_type(resource $handle): string

此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误

<?php
$c = mysql_connect();
echo get_resource_type($c)."\n";
// 打印:mysql link

$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打印:file

$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
// 打印:domxml document
?>
### 3.11、条件语句
if 语句 							在条件成立时执行代码
if...else 语句					 在条件成立时执行一块代码,条件不成立时执行另一块代码
if...elseif....else 语句			  在若干条件之一成立时执行一个代码块
switch 语句					     在若干条件之一成立时执行一个代码块
3.11.1、if 语句

用法:

if (条件)
{
    条件成立时要执行的代码;
}

示例:如果当前时间小于 20,下面将输出 “good!”

<?php
$t=date("H");
if ($t<"20")
{
    echo "good!";
}
?>					
3.11.2、if…else 语句

用法:

if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
} 

**示例:**如果a大于20输出helloworld,否则输出byeworld

<?php
$a=15;
if($a<"20")
{
echo "helloworld";
}
else
{
echo "byeworld";
}
?>
3.11.3、if…elseif…else 语句

用法:

if (条件)
{
    if 条件成立时执行的代码;
}
elseif (条件)
{
    elseif 条件成立时执行的代码;
}
else
{
    条件不成立时执行的代码;
}

**示例:**如果当前时间小于 10,下面的实例将输出 “Have a good morning!”,如果当前时间不小于 10 且小于 20,则输出 “Have a good day!”,否则输出 “Have a good night!”

<?php
$t=date("H");
if ($t<"10")
{
    echo "Have a good morning!";
}
elseif ($t<"20")
{
    echo "Have a good day!";
}
else
{
    echo "Have a good night!";
}
?>									//Have a good day! 

4、PHP 常量

常量是一个简单值的标识符,该值在脚本中不能改变
常量由英文字母、下划线、和数字组成
数字不能作为首字母出现。 
常量名不需要加 $ 修饰符
常量是全局的

设置常量,使用 define() 函数,函数语法如下:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的
<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING;    // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting;   // 输出 "greeting",但是有警告信息,表示该常量未定义
?>


<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com", true);
echo greeting;  // 输出 "欢迎访问 Runoob.com"
?>

5、字符串变量

5.1、PHP 中的字符串变量

字符串变量用于包含有字符的值

在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中

<?php
$txt="Hello world!";
echo $txt;
?> 
5.2、strlen() 函数

strlen() 函数返回字符串的长度(字节数)

<?php
echo strlen("Hello world!");
?> 		//输出:12

strlen() 常常用在循环和其他函数中,因为那时确定字符串何时结束是很重要的

5.3、strpos() 函数

strpos() 函数用于在字符串内查找一个字符或一段指定的文本(字符串第一个字符位置为 0 )

如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE

<?php
echo strpos("Hello world!","world");
?> 			//输出:6
5.4、strchr() 函数

strchr() 函数搜索字符串在另一字符串中的第一次出现

函数是 strstr() 函数的别名

该函数是二进制安全的。
该函数是区分大小写的

语法:

strchr(string,search,before_search);
string 					必需。规定被搜索的字符串
search 					必需。规定所搜索的字符串 如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符
before_search 	可选一个默认值为false的布尔值 如果设置为true 它将返回search参数第一次出现之前的字符串部分

请添加图片描述

5.5、strcmp() 函数

比较两个字符串

strcmp() 函数是二进制安全的,且区分大小写

用法:

strcmp(string1,string2) 
string1 	必需。规定要比较的第一个字符串
string2 	必需。规定要比较的第二个字符串
该函数返回:
     0 - 如果两个字符串相等
    <0 - 如果 string1 小于 string2
    >0 - 如果 string1 大于 string2
示例
<?php
echo strcmp("Hello world!","Hello world!");		   // 0
echo strcmp("Hello world!","Hello");			  // 7
echo strcmp("Hello world!","Hello world! Hello!"); // -7
?>
5.6、addslashes(str) 函数

addslashes() 函数返回在预定义的字符前添加反斜杠的字符串

预定义字符是:

单引号(')
双引号(")
反斜杠(\)
NULL

用于为存储在数据库中的字符串以及数据库查询语句准备合适的字符串

语法:

addslashes(string) 		#string 规定要转义的字符串  返回已转义的字符串

**示例:**向字符串中的预定义字符添加反斜杠

<?php
$str = "Who's Peter Griffin?";
echo $str . " This is not safe in a database query.<br>";
echo addslashes($str) . " This is safe in a database query.";
?> 

输出为:

Who's Peter Griffin? This is not safe in a database query.
Who\'s Peter Griffin? This is safe in a database query. 
5.7、addcslashes(str) 函数

addcslashes() 函数返回在指定的字符前添加反斜杠的字符串

区分大小写的
对 0(NULL)
   r(回车)、
   n(换行)、
   t(制表符)、
   f(换页)
   v(垂直制表符)应用 addcslashes() 时要小心

语法:

addcslashes(string,characters) 
string 			#必需。规定要转义的字符串。
characters 		#必需。规定要转义的字符或字符范围。

**示例:**向字符串中的一个范围内的字符添加反斜杠

<?php
$str = "Welcome to my humble Homepage!";
echo $str."<br>";
echo addcslashes($str,'A..Z')."<br>";
echo addcslashes($str,'a..z')."<br>";
echo addcslashes($str,'a..g');
?>

输出为:

Welcome to my humble Homepage!
\Welcome to my humble \Homepage!						//指定A..Z
W\e\l\c\o\m\e \t\o \m\y \h\u\m\b\l\e H\o\m\e\p\a\g\e!	  //指定a..z
W\el\com\e to my hum\bl\e Hom\ep\a\g\e! 				 //指定a..g

请添加图片描述请添加图片描述

<html>
    <head><title>php是世界上最好的语言</title></head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<h1>PHP test</h1>
<?php
include('-5fc74769ab0b204f.jpg');
echo '<br>';
$str = "Hello'''''''''world";
echo $str .'<br>' ;
echo addslashes($str).'<br>' ;
echo addcslashes($str,'A..Z').'<br>';
$str1=addslashes($str);
$str2=addcslashes($str,'A..Z');
echo $str1.'<br>';
echo $str2.'<br>';
echo stripslashes($str1).'<br>';
echo stripcslashes($str2).'<br>';
?> 
<img src="./assets/4e729c1075ba70a1.jpg">
</body>
</html>
5.8、htmlentities(string) 函数
htmlentities()函数,将字符转换为 HTML 实体
html_entity_decode()函数,将HTML实体转换回字符,
get_html_translation_table()函数,返回htmlentities()使用的翻译表

语法:

htmlentities(string,flags,character-set,double_encode) 
'''string-必需-规定要转换的字符串。'''
'''flags-可选-规定如何处理引号、无效的编码以及使用哪种文档类型'''

可用的引号类型:
ENT_COMPAT   	  #默认。仅编码双引号。
ENT_QUOTES   	  #编码双引号和单引号。
ENT_NOQUOTES   	  #不编码任何引号。

无效的编码:
ENT_IGNORE   	 #忽略无效的编码,而不是让函数返回一个空的字符串。应尽量避免,因为这可能对安全性有影响
ENT_SUBSTITUTE   #把无效的编码替代成一个指定的带有 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD; 的字符,而				  不是返回一个空的字符串。
ENT_DISALLOWED   #把指定文档类型中的无效代码点替代成 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD;。
				规定使用的文档类型的附加 flags:
ENT_HTML401   	 #默认。作为 HTML 4.01 处理代码。
ENT_HTML5   	 #作为 HTML 5 处理代码。
ENT_XML1    	 #作为 XML 1 处理代码。
ENT_XHTML   	 #作为 XHTML 处理代码。
'''character-set-可选-一个规定了要使用的字符集的字符串'''

允许的值:
UTF-8   	#默认。ASCII 兼容多字节的 8 位 Unicode
cp866   	#DOS 专用 Cyrillic 字符集
cp1251   	#Windows 专用 Cyrillic 字符集
cp1252   	#Windows 专用西欧字符集
BIG5   		#繁体中文,主要在台湾使用
GB2312  	#简体中文,国家标准字符集
MacRoman  	#Mac 操作系统使用的字符集

注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。
'''double_encode-可选-一个规定了是否编码已存在的 HTML 实体的布尔值'''

TRUE   			#默认。将对每个实体进行转换。
FALSE   		#不会对已存在的 HTML 实体进行编码。

返回已转换的字符串

如果 string 包含无效的编码,则返回一个空的字符串,除非设置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 标志

**示例:**把一些字符转换为 HTML 实体

<?php
$str = "Jane & 'Tarzan'";
echo htmlentities($str, ENT_COMPAT); // 只会转换双引号
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // 不转换任何引号
?>

输出为:

Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
5.9、substr(string,star) 函数

返回字符串的一部分

如果 start 参数是负数且 length 小于或等于 start,则 length 为 0

语法:

substr(string,start,length) 
string--必需--规定要返回其中一部分的字符串

start--必需--规定在字符串的何处开始
正数   	#在字符串的指定位置开始
负数  	#在从字符串结尾的指定位置开始
0   	  #在字符串中的第一个字符处开始

length--可选-规定要返回的字符串长度。默认是直到字符串的结尾
正数     #从 start 参数所在的位置返回
负数     #从字符串末端返回

返回字符串的提取部分,如果失败则返回 FALSE,或者返回一个空字符串

**示例:**使用带有不同正负数的 start 参数

<?php
echo substr("Hello world",10)."<br>";		//	d				从第0元素H开始 包含空格 若,11则空
echo substr("Hello world",1)."<br>";		//	ello world
echo substr("Hello world",3)."<br>";		//	lo world
echo substr("Hello world",7)."<br>";		//	orld
 
echo substr("Hello world",-1)."<br>";		//	d
echo substr("Hello world",-10)."<br>";		//	ello world
echo substr("Hello world",-8)."<br>";		//	lo word
echo substr("Hello world",-4)."<br>";		//	orld
?>
5.10、stripslashes(str) 函数

删除由 addslashes(str) 添加的反斜杠

用法:

stripslashes(string) 

**示例:**删除反斜杠

<?php
echo stripslashes("Who\'s Peter Griffin?");
?>										//Who's Peter Griffin? 
5.11、stripcslashes(str) 函数

删除由 addcslashes(str) 添加的反斜杠

用法:

stripcslashes(string) 

示例:

<?php
echo stripslashes("Hello \World!");
?>									//Hello World! 

6、运算符

6.1、算数运算符
运算符 	名称 			描述 			  实例 				结果
x + y 		加 		x 和 y 的和 		2 + 2 				  4
x - y 		减 		x 和 y 的差 		5 - 2 				  3
x * y 		乘 		x 和 y 的积 		5 * 2 				  10
x / y 		除 		x 和 y 的商 		15 / 5 				  3
x % y 		模 		x 除以 y 的余数 	   5 % 2			     1	
- x 	    取反 		  x 取反  	<?php $x =2;echo -$x;?>	   -2
a . b 		并置 		连接两个字符串 	"Hi" . "Ha" 		  HiHa
6.2、赋值运算符
运算符 			等同于 			描述						
x = y 			   x = y 	 左操作数被设置为右侧表达式的值
x += y 			  x = x + y 			加
x -= y 			  x = x - y 			减
x *= y 			  x = x * y 			乘
x /= y 			  x = x / y 			除
x %= y 			  x = x % y 	   模(除法的余数)
a .= b 			  a = a . b 	   连接两个字符串
6.3、比较运算符
运算符 		  名称 					描述 								实例
x == y 			等于 		  如果 x 等于 y,则返回 true 					 5==8 返回 false
x === y 	   绝对等于 	 如果 x 等于 y,且它们类型相同,则返回 true 	   5==="5" 返回 false
x != y 			不等于 	 如果 x 不等于 y,则返回 true 					5!=8 返回 true
x <> y 			不等于 	 如果 x 不等于 y,则返回 true 					5<>8 返回 true
x !== y 	   绝对不等于    如果 x 不等于 y,或它们类型不相同,则返回 true 	 5!=="5" 返回 true
x > y 			大于 		  如果 x 大于 y,则返回 true 					 5>8 返回 false
x < y 			小于 	      如果 x 小于 y,则返回 true 					  5<8 返回 true
x >= y 		  大于等于 	     如果 x 大于或者等于 y,则返回 true 			  5>=8 返回 false
x <= y 		  小于等于 	     如果 x 小于或者等于 y,则返回 true 			  5<=8 返回 true
#### 6.4、逻辑运算符
运算符 		名称 					描述 						实例
x and y 		与 	 如果x和y都为true,则返回true 	        x=6,y=3,(x < 10 and y>1) 返回 true
x or y 			或 	 如果x和y至少有一个为true,则返回true 	 x=6,y=3,(x==6 or y==5) 返回 true
x xor y 	   异或 	 如果x和y有且仅有一个为true,则返回true 	x=6,y=3,(x==6 x or y==3) 返回 false
x && y 			与 	 如果x和y都为true,则返回true 		    x=6,y=3,(x< 0 &&y>1) 返回 true
x || y 			或 	 如果x和y至少有一个为true,则返回true 	 x=6,y=3,(x==5||y==5) 返回 false
! x 			非 	 如果x不为true,则返回true 				x=6,y=3,!(x==y) 返回 true
6.5、运算符优先级
结合方向 			运算符 											附加信息
无 				clone new 										  clone 和 new
左 					[ 												array()
右 	++ -- ~ (int) (float) (string) (array) (object) (bool) @ 		 类型和递增/递减
无 				instanceof 											 类型
右 					! 											   逻辑运算符
左 				   * / % 										    算术运算符
左 				   + – . 									  算术运算符和字符串运算符
左 				   << >> 											位运算符
无 			   == != === !== <> 									比较运算符
左 					& 											位运算符和引用
左 					^ 												位运算符
左 					| 												位运算符
左 				    && 												逻辑运算符
左 				    || 												逻辑运算符
左 				    ? : 											三元运算符
右 		= += -= *= /= .= %= &= |= ^= <<= >>= => 					   赋值运算符
左 				    and 											逻辑运算符
左 				    xor 											逻辑运算符
左 					or 												逻辑运算符
左 					 , 												 多处用到
			实例

x and y 与 如果x和y都为true,则返回true x=6,y=3,(x < 10 and y>1) 返回 true
x or y 或 如果x和y至少有一个为true,则返回true x=6,y=3,(x6 or y5) 返回 true
x xor y 异或 如果x和y有且仅有一个为true,则返回true x=6,y=3,(x6 x or y3) 返回 false
x && y 与 如果x和y都为true,则返回true x=6,y=3,(x< 0 &&y>1) 返回 true
x || y 或 如果x和y至少有一个为true,则返回true x=6,y=3,(x5||y5) 返回 false
! x 非 如果x不为true,则返回true x=6,y=3,!(x==y) 返回 true




#### 6.5、运算符优先级

结合方向 运算符 附加信息
无 clone new clone 和 new
左 [ array()
右 ++ – ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
无 instanceof 类型
右 ! 逻辑运算符
左 * / % 算术运算符
左 + – . 算术运算符和字符串运算符
左 << >> 位运算符
无 == != === !== <> 比较运算符
左 & 位运算符和引用
左 ^ 位运算符
左 | 位运算符
左 && 逻辑运算符
左 || 逻辑运算符
左 ? : 三元运算符
右 = += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
左 and 逻辑运算符
左 xor 逻辑运算符
左 or 逻辑运算符
左 , 多处用到

## 7、PHP 超级全局变量

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用

**PHP 超级全局变量列表:**

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


### 7.1、PHP $GLOBALS

$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。

$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

**示例:**

```php
<?php 
$x = 75; 
$y = 25;
function addition() 
{ 
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition(); 
echo $z; 
?>

z 是一个$GLOBALS数组中的超级全局变量,该变量同样可以在函数外访问

7.2、PHP $_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

示例:

<?php 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

请添加图片描述

请添加图片描述

请添加图片描述

7.3、PHP $_REQUEST

PHP $_REQUEST 用于收集HTML表单提交的数据。

以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据

示例:

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>
</body>
</html>
7.4、PHP $_POST

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

以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据

示例:

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_POST['fname']; 
echo $name; 
?>
</body>
</html>
7.5、PHP $_GET

PHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“get”。

$_GET 也可以收集URL中发送的数据。

假定我们有一个包含参数的超链接HTML页面:

<html>
<body>
<a href="test.php?a=PHP&b=baidu.com">Test $GET</a>
</body>
</html>

当用户点击链接 “Test $GET”, 参数"subject"和"web" 将发送至"test.php",你可以在 “test.php” 文件中使用 _GET 变量来获取这些数据。

以下实例显示了 “test.php” 文件的代码:

<html>
<body>
<?php 
echo "Hello world!" . $_GET['a'] . $_GET['b'].'<br>';
phpinfo();
?>
</body>
</html>

请添加图片描述

请添加图片描述

7.5、PHP $_FILES

通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。

第一个参数是表单的 input name,第二个下标可以是 “name”、“type”、“size”、“tmp_name” 或 “error”

$_FILES["file"]["name"] - 上传文件的名称
$_FILES["file"]["type"] - 上传文件的类型
$_FILES["file"]["size"] - 上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码

8、PHP 循环

PHP 中,提供了下列循环语句

while - 只要指定的条件成立,则循环执行代码块
do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
for - 循环执行代码块指定的次数
foreach - 根据数组中每个元素来循环代码块

8.1、while 循环

while 循环将重复执行代码块,直到指定的条件不成立

语法:

while (条件)
{
    要执行的代码;
}

示例:

<?php
$i=1;
while($i<=5)
{
    echo "The number is " . $i . "<br>";
    $i++;
}
?>

输出结果为:

The number is 1
The number is 2
The number is 3
The number is 4
The number is 5 

8.2、do…while 语句

do…while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环

语法:

do
{
    要执行的代码;
}
while (条件);

示例:

<?php
$i=1;
do
{
    $i++;
    echo "The number is " . $i . "<br>";
}
while ($i<=5);
?>

输出:

The number is 2
The number is 3
The number is 4
The number is 5
The number is 6 

8.3、for 循环

for (初始值; 条件; 增量)
{
    要执行的代码;
}
初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。
PS:初始值和增量参数可为空,或者有多个表达式(用逗号分隔)

示例:

<?php
for ($i=1; $i<=5; $i++)
{
    echo "数字为 " . $i . PHP_EOL;
}
?>

输出:

数字为 1
数字为 2
数字为 3
数字为 4
数字为 5

9、PHP 函数

9.1、PHP 内建函数

太多了

9.2、创建 PHP 函数

函数是通过调用函数来执行的

语法:

<?php
function functionName()
{
    // 要执行的代码
}
?>

PHP 函数准则:

  • 函数的名称应该提示出它的功能
  • 函数名称以字母或下划线开头(不能以数字开头)

示例:

<?php
function Name()
{
    echo "hacker";
}
echo "My name is ";
Name();
?>						//输出为 My name is hacker

9.3、添加参数

为了给函数添加更多的功能,我们可以添加参数,参数类似变量。

参数就在函数名称后面的一个括号内指定。

示例:

<?php
function Name($fname)
{
    echo $fname . " 123.<br>";
}
echo "My name is ";
Name("hacker");
echo "His name is ";
Name("LJ");
echo "Her name is ";
Name("LL");
?>

输出:

My name is hacker 123.
His name is LJ 123.
Her name is LL 123.

9.4、返回值

如需让函数返回一个值,请使用 return 语句

示例:

<?php
function add($x,$y)
{
    $sum=$x+$y;
    return $sum;
}
echo "1 + 10 = " . add(1,10);
?>

输出:

1 + 10 = 11

10、数学函数

max()		#返回一个数组中的最大值或几个指定值中的最大值
abs()		#返回一个数的绝对值
min()		#返回一个数组中的最小值或几个指定值中的最小值
floor()		#向下舍入为最接近的整数
ceil()		#向上舍入为最接近的整数
rand()		#返回随机值
sqrt()		#返回一个数的平方根

11、时间日期函数

date()
time()
mktime()
microtime()
localtime()

11.1、data() 函数

可把时间戳格式化为可读性更好的日期和时间(时间戳是一个字符序列,表示一定的事件发生的日期/时间)

语法:

string date ( string $format [, int $timestamp ] )
format 		  必需			规定时间戳的格式。
timestamp 	  可选			规定时间戳。默认是当前的日期和时间。
d - 代表月中的天 (01 - 31)
m - 代表月 (01 - 12)
Y - 代表年 (四位数)

示例:

<?php
echo date("Y/m/d") . "<br>";
echo date("Y.m.d") . "<br>";
echo date("Y-m-d");
?>

输出为:

2022/07/16
2022.07.16
2022-07-16

11.2、time() 函数

语法为:

time();

示例:

<?php
$a = time();
echo '<br>';
echo (date("Y-m-d A-G:i:s",$a));
?>						//2022-07-16 AM-9:30:11
年-Y	 月-F(m/M)  日-d(j)	上午(下午)-A(a)	 	时-h  分钟-i 	秒-s

11.3、localtime() 函数

语法:

localtime(timestamp,is_assoc);

示例:

<?php
print_r(localtime());
echo "<br><br>";
print_r(localtime(time(),true));
?> 

输出为:

Array ( [0] => 15 [1] => 13 [2] => 11 [3] => 21 [4] => 8 [5] => 113 [6] => 6 [7] => 263 [8] => 1 )

Array ( [tm_sec] => 15 [tm_min] => 13 [tm_hour] => 11 [tm_mday] => 21 [tm_mon] => 8 [tm_year] => 113 [tm_wday] => 6 [tm_yday] => 263 [tm_isdst] => 1 ) 

11.4、microtime() 函数

microtime() 函数返回当前 Unix 时间戳的微秒数

语法:

microtime(get_as_float);
get_as_float 		可选        当设置为TRUE时,规定函数应该返回一个浮点数,否则返回一个字符串 默认为FALSE

默认返回字符串 “microsec sec” , sec 为自 Unix 纪元起的秒数,microsec 为微秒部分,

示例:

<?php
echo(microtime());
?> 					// 0.72892800 1657935826

12、HTTP 函数

12.1、header() 函数

header() 函数向客户端发送原始的 HTTP 报头

语法:

header(string,replace,http_response_code) 

header('Location: http://www.baidu.com/');
12.2、headers_sent() 函数

检查 HTTP 报头是否发送/已发送到何处。如果报头已发送,该函数返回 TRUE,否则返回 FALSE

一旦报头块已经发送,您就不能使用 header() 函数来发送其它的报头

语法:

headers_sent(file,line) 

示例:

if (!headers_sent())
{
header("Location: http://www.w3cschool.cc/");
exit;
}
12.3、headers_list() 函数

返回已发送的(或待发送的)响应头部的一个列表,该函数返回包含报头的数组。

示例:

header('Content-type: text/plain');
header('User-agent: Mozilla');
header('Cookie:PHPSESSIONID=xxxxxxxxxxxxxxx');
header("X-Forwarded-For: 127.0.0.1");
var_dump(headers_list);
12.4、setcookie() 函数

向客户端发送一个 HTTP cookie

cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当同一台计算机通过浏览器请求页面时,就会发送这个 cookie。

必须在任何其他输出发送到客户端前对 cookie 进行赋值。

如果成功,该函数返回 TRUE。如果失败则返回 FALSE

语法:

setcookie(name,value,expire,path,domain,secure) 

请添加图片描述

通过 $HTTP_COOKIE_VARS["user"] 或  $_COOKIE["user"] 来访问名为 "user" 的 cookie 的值
在发送cookie时,cookie的值会自动进行URL编码.接收时会自动进行URL解码.如果您不需要这样,可以使用setrawcookie()代替

示例:

$value = "my cookie value";
//发送一个 24 小时后过期的 cookie
setcookie("TestCookie",$value, time()+3600*24);
12.5、setrawcookie() 函数

setrawcookie() 函数不对 cookie 值进行 URL 编码,发送一个 HTTP cookie

语法:

setrawcookie(name,value,expire,path,domain,secure) 

13、正则表达式

13.1、preg_filter()
preg_filter(pattern,replacement,sbuject)		执行一个正则表达式的搜索和替换
13.2、preg_match() 函数
preg_match()								  执行一个正则表达式匹配

示例:

if(preg_match("/php/i","php is the best language!")){				
echo "find it string php.";
}else {
	echo "Cannot find it string php.";
}												// /php/i 标记这是一个大小写不敏感的搜索
preg_match('@^(?:http://)?([^/]+@i',"http://explame.com",$matches);
$host=$matches[1];
preg_match('/[^.]+\.[^.]+$/',$host,$matches);
echo "domain is:{$matches[0]}\n";
13.3、preg_replace() 函数

执行一个正则表达式的搜索和替换

语法:

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
$pattern: 要搜索的模式,可以是字符串或一个字符串数组。
$replacement: 用于替换的字符串或字符串数组。
$subject: 要搜索替换的目标字符串或字符串数组。
$limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。
$count: 可选,为替换执行的次数。

如果 subject 是一个数组, preg_replace() 返回一个数组, 其他情况下返回一个字符串。

如果匹配被查找到,替换后的 subject 被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL

示例:

$str = 'google 123,456';
$pattern='/(\w+) (\d+),(\d+)/i'; //或者为 $pattern='/([a-z]) (\d+),(\d+)/i';
$replacement='seclover $2,$3';
echo preg_replace($pattern,$replacement,$str);			//输出为 seclover 123,456
$subject = "A784as5Ja4HaAQ5s4xd48za1cdJ14";
echo preg_replace("/0/","A",$subject).'<br>';  //0替换为A
echo preg_replace("/[0-9]/","",$subject).'<br>'; //去掉所有数字
echo preg_replace("/[A-Z]/","",$subject).'<br>'; //去掉所有大写字母
echo preg_replace("/[a-z]/","",$subject).'<br>'; //去掉所有小写字母
echo preg_replace("/[A-z]/","",$subject).'<br>'; //去掉所有字母
A784as5Ja4HaAQ5s4xd48za1cdJ14
AasJaHaAQsxdzacdJ
784as5a4a5s4xd48za1cd14
A7845J4HAQ54481J14
784545448114
13.4、preg_split()

通过一个正则表达式分隔字符串

示例:

echo '<pre>';
$keywords =preg_split("/[\s,]+/","China,US,UK");
print_r($keywords);

输出为:

Array
(
    [0] => China
    [1] => US
    [2] => UK
)

示例:

echo '<pre>';				   //对空行和空格进行控制,对数组应用较多
$subject ='www.baidu.com,www.google.com,www.seclover.com';
$pattern='/[\s,:]+/';           // \s 匹配任何空白符,空格,制表符,换页符等
print_r(preg_split($pattern,$subject));

输出为:

Array
(
    [0] => www.baidu.com
    [1] => www.google.com
    [2] => www.seclover.com
)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值