php编程语言,服务器编程语言(后台语言)
- php与js最大的区别,工作环境
php:文件结构
php的执行:服务器
浏览器没有解析php文件的功能
php文件被服务器执行之后,显示在浏览器
php的标识符
- 标识符:其实标识符就是变量的名称,函数与类的名称也是标识符。PHP中标识符的规则:
1.标识符可以是任意长度的字母、数字、下划线,且不得以数字开头。
2.PHP中标识符是区分大小写的,但函数名是个例外。
3.变量名可以与函数名相同。但应尽量避免。
4.不能创建与已有函数同名的函数。
输出方法echo和print
echo的速度快于print ,echo没有返回值,而print有返回值,且返回值总为1。
<?php
echo 'hello word<br>';
print 'hello word';
?>
输出结果为:hello world
hello world
die() >> 输出一条消息,并退出当前脚本。//相当于 return的结束当前函数的功能
变量
超级全局变量:这种变量在脚本的全局都可以使用:
$_REQUEST
$_POST
$_GET
函数
作用域:
1.局部变量;
函数中的参数也是局部变量;
<?php $x=5; // 全局变量 function myTest(){ $y=10; // 局部变量 echo "测试函数内变量:
”; echo "变量 x 为: $x”; echo "
”; echo "变量 y 为: $y”; } myTest(); echo "测试函数外变量:
”; echo "变量 x 为: $x”; echo "
”; echo "变量 y 为: $y”; ?>
2.全局变量:
<?php $x=5; $y=10; function myTest(){ global $x,$y; //利用这个关键字声明的变量是全局变量; $y=$x+$y; } myTest(); echo $y; // 输出 15 ?>
3.Static 作用域(JS中的闭包);
局部变量在运行结束之后会被删除,再次重新声明时会被重新赋值,但是static类变量不会,他会一直存在于php的变量中;
<?php
function fnName(){
static $x = 11;
echo $x;
$x++;
}
fnName();
fnNa me();
数组
1.创建数组:
$arr = array(1,2,3,4,5);
2.数组赋值:
$arr[0] = 11;
3.数组相关方法:
获取数组长度:count()函数;
count($arr);//返回数组长度;
4.遍历数组
for($x = 0 ;
x
<
c
o
u
n
t
(
x < count(
x<count(arr) ; $x++){
echo
a
r
r
[
arr[
arr[x];
}
php关联数组
:(用=>链接起来)
关联数组:
$arr1 = array(“name”=>“admin”,“age”=>17);
$arr2 = array(“name”=>“root”,“age”=>18);
echo $arr;
print
a
r
r
;
p
r
i
n
t
r
(
arr; print_r(
arr;printr(arr); //用来查看或测试
数组排序:
sort() :升序排列; rsort() :降序排列;
遍历关联数组:foreach();
foreach()第一个参数为数组>> foreach($arr);
foreach()第二个参数为关键字as代表在数组中找到的值赋给后面的变量 >> foreach($arr as);
foreach()第三个和第四个参数为key和value ;也就是关联数组中的键和值 用 => 链接 >> froeach($arr as $key => value);
$arr = array('firstName' => 'yang', 'lastName' => 'huaizhi’);
foreach ($arr as $key => $value) {
echo $key.'<br>';
echo $value.'<br>';
}
foreach() 会执行两次,因为数组中有两对数据,如果数组中的数据有n个那么foreach就执行n次;
将自己的数组或对象转成json
echo json_encode($arr);
索引数组被转成,类似于js数组的字符
关联数组被转成,类似于js对象的字符
两相结合,可以转成类似于js数组里放对象的字符 √
对象
class Obj{
var $name = "admin";
function show(){
echo "hello ".$this->name;
}
}
$o = new Obj();
// echo $o->name;
// echo $o->show();
echo json_encode($o);
php与前端发收
前端:
收:接收:浏览器暂代接收功能,以html的格式显示在浏览器中
发:发送
form表单自带的发送(临时使用)
ajax的发送
发送数据的格式:
名字=值&名字=值
名字:字段名
值:字段值
form的发送中:
把name的值作为字段名
把value的值作为字段值
后台:
收:接收:$_GET,
发:返回:echo
数据库的增删改查
php操作mysql存储数据:
php的支持
mysql的操作命令:
增
INSERT stu (name,tel,cj) VALUES(‘admin’,‘1232132’,34.5);
改
UPDATE stu SET cj=67.5 WHERE id=1;
查
SELECT name,tel,cj FROM stu;
删
DELETE FROM stu WHERE id=3;
php链接mysql 增删改查
1.登录mysql,链接mysql,选择数据库
l
i
n
k
=
@
n
e
w
m
y
s
q
l
i
(
"
l
o
c
a
l
h
o
s
t
:
3306
"
,
"
r
o
o
t
"
,
"
r
o
o
t
"
,
"
t
e
s
t
1910
"
)
;
i
f
(
link = @new mysqli("localhost:3306","root","root","test1910"); if(
link=@newmysqli("localhost:3306","root","root","test1910");if(link->connect_error){
echo $link->connect_error;
}
2.向mysql发送命令,根据命令执行不同的功能
$link->query(“mysql命令”);
增
$str = "INSERT stu (name,tel,cj) VALUES('李四','345',78.5)";
$q = $link->query($str);
if($q){
echo "insert success";
}else{
echo "insert error";
}
改
$str = "UPDATE stu SET name='王二' WHERE id=5";
$q = $link->query($str);
if($q){
echo "update success";
}else{
echo "update error";
}
删
$str = "DELETE FROM stu WHERE id=6";
$q = $link->query($str);
if($q){
echo "delete success";
}else{
echo "delete error";
}
查:资源型数据
$str = "SELECT * FROM stu";
$q = $link->query($str);
if($q){
echo $q;
数据解析之后,才能看到,或操作,怎么解析?
每个fetch方法都是:每次执行只能拿到一条信息
while(true){
$arr = $q->fetch_array();
print_r($arr);
echo "<br>";
if(!$arr){
break;
}
}
索引数组+关联数组
while($arr = $q->fetch_array()){
print_r($arr);
echo "<br>";
}
索引数组
while($arr = $q->fetch_row()){
print_r($arr);
echo "<br>";
}
关联数组√
while($arr = $q->fetch_assoc()){
// print_r($arr);
// echo $arr["cj"];
echo json_encode($arr);
echo "<br>";
}
对象
while($arr = $q->fetch_object()){
print_r($arr);
echo "<br>";
}
}else{
echo "select error";
}