php语法
基础语法
php脚本以<?php
开头,?>
结尾,中间的语句,每一行以分号结束,例如:
<?php
echo “hello,world!”;
echo “php yyds!”;
?>
php语句和变量名区分大小写
注释:
//单行注释
/**/多行注释
php常见函数
php变量
php变量声明以$符号开头,$变量名,变量名必须以字母和下划线开头,变量名由字母、下划线、数字组成,变量名中间不能有空格,php是弱类型语言,不需要指定变量类型,php会自动完成数据类型转换。例如:$a="123";$a=5;
php有四种不同的变量作用域:
- local
- global
- static
- parameter
local:局部变量,声明的变量,只在方法内有效,方法结束,变量销毁。例如:
<?php
function test(){
$a = 123;
echo “$a”;//可以取到变量$a的值
}
test();
echo “$a”;//不能取到变量$a的值
?>
global:全局变量,声明的变量在方法外,在方法内不能直接使用全局变量,需要先用global声明。例如:
<?php
$a = 10;
function test(){
global $a;
$b = 5;
$c = $a + $b;//变量$a用global声明了,可以取到值
echo “$c”;
}
test();
?>
static:声明的变量,在方法内有效,方法结束,变量不销毁。例如:
<?php
function test(){
static $a = 123;
$a = $a + 1;
echo “$a”;//可以取到变量$a的值,每调用一次test()方法,变量$a的值都会在原值的基础上加1
}
test();
test();
test();
echo “$a”;//不能取到变量a的值
?>
parameter:方法的参数,声明的变量,在方法内有效。例如:
<?php
function test($a){
$b = 5;
$c = $a + $b;
echo “$c”;
}
test(10);//输出15
?>
php输出
echo和print区别:
echo:可以输出一个或多个字符串。
print:只允许输出一个字符串,返回值总为1。
echo输出的速度比print快
<?php
$a = “hello”;
$b = “world”;
echo “$a”,”$b”,”!”;//echo输出多个字符串。echo "<br/>";
//换行
echo $a.$b.”!”;//echo输出一个字符串,字符串通过’.’连接echo "<br/>";
print $a,$b;//语法错误,print只允许输出一个字符串
?>
EOF输出字符串
<?php
$a = "hello<br/> world ";
echo $a;echo "<br/>";
//EOF输出以<<<EOF开头,EOF结尾,EOF只能在行首,前面不能有空格
$b = <<<EOF
hello
world
EOF;
echo “$b”;
?>
php数据类型
- String(字符串)
- Integer(整型)
- Float(浮点型)
- Boolean(布尔型)
- Array(数组)
- Object(对象)
- NULL(空值)
- Resource(资源类型)
<?php
class Car{
function what_color($color){
return “Car:”.”$color”;
}
function print_var(){
$a = “hello”;//字符串类型变量
$b = 123;//整型变量
$c = 123.5;//浮点型变量
$d = true;//布尔型变量
$e = array(“hello”, “world”, 123);//数组类型变量
$f = NULL;//空值(0,””,NULL)
var_dump($a, $b, $c, $d, $e, $f);
echo "<br/>";
}
}
$color = new Car();//对象类型变量
var_dump($color);echo "<br/>";
$result = $color->what_color(“red”);//调用对象方法
echo $result;echo "<br/>";
$color->print_var();
?>
resource资源类型
php资源resource是一种特殊的变量,保存了到外部资源的一个引用。
常见资源数据类型有打开文件、数据库连接、图形画布区域等。
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。
使用get_resource_type()函数可以返回资源类型:get_resource_type(resource $handle) : string
此函数返回一个字符串,用于表示传递给它的resource类型。如果参数不是合法的resource,将产生错误。
php类型比较
php类型比较分为松散比较和严格比较,==松散比较,===严格比较。松散比较只比较值,不比较类型。严格比较比较值和类型。if(123 == "123")//true,松散比较,值相等
if(123 === "123")//false,严格比较,值相等,类型不同
0、false、null、””互相比较的情况:if(0 == false)//true,松散比较
if(0 === false)//false,严格比较
if("0" == false)//true,松散比较
if("0" === false)//false,严格比较
if(0 == null)//true,松散比较
if(0 === null)//false,严格比较
if("0" == null)//false,松散比较
if("0" === null)//false,严格比较
if(0 == "")//true,松散比较
if(0 === "")//false,严格比较
if("0" == "")//false,松散比较
if("0" === "")//false,严格比较
if(false == null)//true,松散比较
if(false === null)//false,严格比较
if(false == "")//true,松散比较
if(false === "")//false,严格比较
if(null == "")//true,松散比较
if(null === "")//false,严格比较
php常量
php常量使用函数define定义,常量默认区分大小写,define(常量名,常量值,大小写敏感)。例如define("SAYHELLO", "hello, world");
echo SAYHELLO;
引用常量直接使用常量名,没有$符号,方法外面定义的常量,可以直接使用。
php字符串
php字符串使用点拼接字符串,strlen函数返回字符串长度。strpos函数查找子字符串,查找成功返回首次出现的索引,查找失败返回null。例如:$a = "abc";echo strlen($a);//打印3
$a = "abc123";$b = "123";echo strpos($a, $b);//打印3
$a = "hello";$a.=",world";//$a=hello,world
php函数利用
array函数用于创建数组
<?php
$a = array(“abc”, 123, “def”);//array函数创建数组
echo “$a”;//不能打印出数组的值echo "<br/>";
print_r($a);//打印数组元素的值echo "<br/>";
var_dump($a);//打印数组元素的数据类型和值
?>
在php中,有三种类型的数组:
- 数值数组(带有数字ID键的数组)
- 关联数组(带有指定的键的数组,每个键关联一个值)
- 多维数组(包含一个或多个数组的数组)
$color = array("red", "yellow", "blue");//自动分配ID键,ID键从0开始
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);//指定ID键
echo $age['Peter'];echo $age['Ben'];echo $age['Joe'];//通过ID键访问数组元素
foreach遍历关联数组:
foreach($age as $key=>$value){//$key保存ID键,$value保存数组元素值
echo “key=”.$key.”,value=”.$value;echo "<br/>";
}
count函数返回数组长度:count($color);//返回3
数组排序函数:
- sort() 对数组进行升序排列
- rsort() 对数组进行降序排列
- asort() 根据关联数组的值,对数组进行升序排列
- ksort()根据关联数组的键,对数组进行升序排列
- arsort() 根据关联数组的值,对数组进行降序排列
- krsort() 根据关联数组的键,对数组进行降序排列
数组排序函数,排序成功返回1。
php超级全局变量
php预定义了几个超级全局变量,在脚本的全部作用域都可用。
php超级全局变量列表:
- $GLOBALS 包含了全部变量的全局关联数组。变量的名字就是数组的键。
- $_SERVER 包含了头信息(header)、路径(path),以及脚本位置(script locations)等信息的数组,这个数组中的项目由web服务器创建。
- $_REQUEST 收集POST或GET请求中的表单数据。
- $_POST 收集POST请求中的表单数据。
- $_GET 收集GET请求中的表单数据。
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
php常见函数
- phpinfo() 返回php信息,常用于判断php能否正常解析。
- system() 执行系统命令。
- eval() 执行字符串表达式。
php魔术方法
- –LINE– 文件中的当前行号。
- –FILE– 文件的完整路径和文件名。
- –FUNCTION– 函数名称。
- –CLASS– 类的名称。
php表单
php表单数据验证
php文件包含
include和require除了处理错误的方式不同之外,在其它方面都是相同的。
- require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
- Include生成一个警告(E_WARNING),在错误发生后脚本会继续执行。
php文件上传
cookie
session
php数据库
php连接数据库有两种方式,MySQLi和PDO,MySQLi只能用来连接mysql数据库,PDO可以用来连接mysql、mssql、oracle等数据库。php有web版数据库客户端phpMyAdmin可以使用。
MySQLi面向过程方式连接MySQL数据库
MySQLi面向对象方式连接MySQL数据库
PDO面向对象方式连接MySQL数据库
php操作数据库测试
数据库表sql:
CREATE TABLE mydb
.user
( id
BIGINT NOT NULL AUTO_INCREMENT COMMENT ‘主键id’ , username
VARCHAR(30) NOT NULL COMMENT ‘用户名’ , password
VARCHAR(30) NOT NULL COMMENT ‘密码’ , age
INT(3) NOT NULL COMMENT ‘年龄’ , photo
VARCHAR(500) NOT NULL COMMENT ‘头像图片保存路径’ , PRIMARY KEY (id
)) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_general_ci COMMENT = ‘php数据库操作测试表’;
upload.php文件上传页面:
conn.php页面:
login.html登陆页面:
login.php页面:
register.html注册页面:
register.php页面:
success.php页面:
select.php页面: