PHP
客户端与服务端的关系
![](https://img-blog.csdnimg.cn/410f149368cf4f0db8f0c3e7ad9fa6d5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGlu77yManVzdCBkbyBpdO-8gQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/dc6ea2a1ec744f1c9dc4ee7e2b5dd893.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGlu77yManVzdCBkbyBpdO-8gQ==,size_19,color_FFFFFF,t_70,g_se,x_16)
PHP简介:
PHP:原为Personal Home Page的缩写,现为PHP Hypertext Preprocessor,即超文本预处理器。
PHP脚本在服务器上执行,而结果以纯文本返回浏览器。
PHP文件能包含文本、HTML、CSS以及PHP自身代码。
PHP基本语法:
脚本以<?php
开头,?>
结尾。如果是纯PHP代码,最好删除PHP结尾标记?>
注释://或/* */或#
变量规则:$variableName
作用域:⚪local⚪global⚪static
global关键字:用于在函数内访问全局变量
函数执行完会删除所有局部变量,static声明的局部变量可以保留(存储的值为最后一次调用的)
函数:function functionName(){}
输出方法:
- echo:能够输出多个字符串
- print:只能输出一个字符串,且始终返回1
- die:输出一条消息,并退出脚本
<?php
$txt1="Listen";
$txt2="oneself";
$cars=array("Volvo","BMW","SAAB");
echo $txt1,"<br>";
echo "Study CS by $txt2";
echo "My car is a {$cars[0]}";
print "<h2>PHP is fun!</h2>";
?>
赋值:
- 传值赋值:两个变量,两个地址,互不干扰
- 引用赋值:地址相同,变量名不同,一个修改其他也会修改。
//传值赋值
$name="Tom";
$name2=$name;
$name="Sari"; //name:Sari name2:Tom
//引用赋值
$age=19;
$age2=&$age;
$age=20; //age:20 age2:20
文件引用
- include
include引用外部文件时,只有代码执行到include语句时,外部文件才会被引入并读取,当所引用的外部文件发生错误时,系统只给出一个警告,而整个php文件则继续向下执行。
- require
require语句相当于将另一个源文件的内容完全复制到本文件中,所以一般将其放在源文件的起始位置,用于引用需要使用的公共函数文件和公共类文件等。
<?
require "main.php";
include("top.php");
?>
数据类型
var_dump()会返回变量数据类型和值,用于测试
-
整型:
12,0123(八进制),0x1A,0b1111
-
浮点型:
1.234,1.2e3
,NAN属于float -
布尔型:true、false不区分大小写
字符串
php中字符串的定义类型有三种:单引号形式,双引号形式,heredoc结构形式。
双引号可以识别变量和特殊字符的转义序列,如\t,单引号统统不识别。
字符串函数:
$a="hello world";
echo strlen($a); //字符串长:12
echo str_word_count($a); //单词数:2
echo strrev($a); // 反转字符串,返回新串,不改变原来字符串
//strpos:在串中检索某个指定内容,找到返回index,找不到返回false
echo strpos($a,"world"); //6,$a中找world
echo str_replace("world", "Kitty", $a);//hello Kitty
数组
创建数组:array()
或[ ]
- 索引数组:数字索引的数字
- 关联数组:带有键值对的数组,命名访问
(key:value)
- 多维数组:包含一个或多个数组的数组
$cars=["porsche","BMW","Volvo"];
$age=array("Bill"=>"35","Steve"=>"37","Elon"=>"43");
foreach ($cars as $x){
echo $x,"\t";
}
echo "<br>";
foreach($age as $x=>$x_value){
echo $x." ".$x_value,"岁<br>";
}
获取数组长度:count($array)
添加元素:array_push(array,value1,value2...);
数组排序:
- 索引数组排序:
- sort()——升序;rsort()——降序
- 关联数组排序:
- asort():根据value升序;arsort():根据value降序
- ksort():根据key升序;krsort():根据key降序
对象:
在类中声明成员属性时,变量前面一定要使用一个关键字来修饰,例如 public、private,static 等,但这些关键字修饰的变量都具有一定的意义。如果不需要有特定意义的修饰,可以使用“var”关键字
构造函数:
旧版本使用与类同名的函数作为构造函数,新版本:使用__construct(注意:是两条下划线)作为类的构造函数
//首先必须声明对象的类,类是包含属性和方法的结构。
class Car{
var $color;
var $price;
/*function Car($clor) {
$this->color = $clor;
}*/
function __construct($clor="green",$jg){
$this->color=$clor;
$this->price=$jg;
}
}
$abc = new Car("white",1000); //abc是对象类型
//通过->访问属性,不加$
echo $abc->color," ",$abc->price;
NULL
值也是NULL(不区分大小写) is_null()检测是否为NULL
作用:①可以通过把值设置为NULL,将变量清空。②判断变量是否为空x==NULL;③区分空字串和空值数据库
unset()将一个变量转为NULL,并不会删除变量或将其值改为null,仅是返回NULL值而已
数据类型转换
-
(int)、(float)、(double)、(bool)、(array)、(object)
-
intval()、floatval()、strval()
-
settype()
$a="123.1";
(float)$a
floatval($a)
settypr($a,"float");
常量
一旦被定义,就无法改变其值或撤销定义。常量全局可用,在函数内不需要global声明。不能加**$**
define(name,value,boolean)
:boolean默认为false,即对大小写敏感。已经弃用。
const message="hello"
运算符
“.” 连接字符串"hello"."world"=="helloworld"
===类型和值全等 !==不全等
不等于:!=
或<>
<= 小于等于 >= 大于等于
逻辑运算符 :and、or、xor,&&、||、!
太空船运算符(组合比较符):$a<=>$b
小于:-1 等于:0 大于:1
条件及循环语句:
if( ){ }else if( ){ }else{ }
while( ){ } do{ }while( )
switch(){case : ; break;……default:;break;}
for( ; ; ){ }
foreach()循环只适用于数组,每次循环迭代,将当前的数组元素值赋给$value变量
foreach ($array as $value) {
code;
}
超全局变量
- $GLOBALS
存储所有全局变量的关联数组,通过全局变量名访问值。
$GLOBALS[index] 的数组中存储了所有的全局变量,使用命名索引。$GLOBALS['x']
- $_SERVER
一个包含了诸如头信息(header)、路径(path)、脚本位置(scripts locations)等信息的数组
-
$_FILES:通过 HTTP POST 方式上传到当前脚本的项目的数组
-
$_ENV:通过环境方式传递给当前脚本的变量的数组。
-
$_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量的数组
-
$_SESSION:当前脚本可用 SESSION 变量的数组
-
接收表单数据
- $_REQUEST:用于收集HTML表单提交的数据
- $_POST:被广泛应用于收集表单数据,在HTMLform标签的指定该属性:"method=“post”
- $_GET:用于收集来自method=“get” 的表单中的值,GET会把参数包含在URL中,不适合用于敏感信息的表单
访问表单数据:$_REQUEST['name']
,name是表单中对应的输入标签的name属性。
<!--- html中的部分 --->
<form method="post" action="index.php">
Name: <input type="text" name="user"><br/>
Password:<input type="text" name="pwd">
<input type="submit" value="提交">
</form>
<!--- php文件中的 --->
<?php
$name=$_REQUEST['user'];
$pwd=$_REQUEST['pwd'];
echo $name."<br/>".$pwd;
PHP MySQL
query()
执行sql语句:
-
针对一般查询(insert/delete/undate…),将返回 TRUE / FALSE。
-
针对成功的 select、show、describe 或 explain 查询,将返回一个 mysqli_result 对象。通过
mysqli_fetch_array()
函数数组化查询到的记录
<?php
$servername = "localhost";
$username = "root";
$password = "root";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
/*******执行SQL语句*******/
//创建数据库
$sql="create database PHP";
$result= $conn->query($sql);
if($result===TRUE){
echo "database创建成功";
}
//查询
$sql="select * from PHP";
$result=$conn->query($sql);
$row=mysqli_fetch_array($result);
//连接在脚本执行完会自动关闭,也可以用下列代码关闭连接
$conn->close(); //或 mysqli_close($conn);
?>