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页面: