1、第一个PHP程序
PHP的基本格式
php行末尾都要有分号";"。
注释:
2、php中的变量
php中变量以"$"开头,命名规则跟perl差不多
php中不同的数据类型:不同的数据类型数据都是储存在变量"$"中的,不像perl,不同的数据类型的变量开头不同
int:$a=1;
float:$a=1.5;
布尔值:ture;
字符串:"string$a";'string$a';#单引号不考虑是否有变量,双引号会识别变量
数组:$a=[1,2,3,[1,2,3,44]]; $a=array(1,2,3);
对象:$a=new stdClass;#通过new得到一个对象,对象的理解比较难
null
var_dump()函数可以打印变量的信息,确认变量的数据类型
3、数组
php中的数组是包含“键+值”一种类型
int(1) [1]=> int(2) [2]=> int(3) [3]=> array(3) { [0]=> int(4) [1]=> int(5) [2]=> int(6) } }
?>
上面的是索引数组,键由程序自动定义
关联数组的键由用户自己定义
1,
'b'=>2,
'c'=>3,
];
var_dump($arr);# 输出array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) }
?>
数组的增改与perl中的差不多,查一般使用var_dum()或echo函数,删一般使用unset()函数
4、数据的发送与接收
- POST
客户端提交数据
html数据的提交需要在form标签内
服务端打印,$_POST是一个数组
- GET
GET与POST差不多,具体查手册
5、PHP中的运算符
PHP中运算符与perl有一些差异,但不是非常的多,具体查看手册
6、函数
定义函数
在函数中得到的变量是局部变量,在函数外不能调用,可以通过return()将它们返回变成全局变量
调用函数
name(1,2);#结果是打印123和3
7、类与对象
每个类的定义都以关键字 class 开头,后面跟着类名,后面跟着一对花括号,里面包含有类的属性与方法的定义。
var; #$this是一个伪变量,可以在类中引用类里面的方法的时候时候,而在类外去引用一个类的方法,需要先实例化为对象才能引用。
}
}
?>
要创建一个类的实例,必须使用 new 关键字
调用对象的方法和属性。类的变量成员叫做"属性",或者叫"字段"、"特征",在本文档统一称为"属性"。
var;
}
$instance = new SimpleClass();
$instance->displayVar();#调用类里面的方法
$instance->var;#调用类里面的变量,不需要$符号
}
?>
传参:
s1=$a;#将参数值赋予类属性
$this->s2=$b;
}
$instance = new SimpleClass('a','b');#实例化对象,且输入参数
}
?>
8、包含文件
包含外部文件,通过include或require包含了外部的php文件可以调用其他php文件内的属性方法。
vars.php
test.php
include_once和 include语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含一次。
require和include几乎一样,只在出现错误时有差别
9、通过php执行mysql语句
mysqli_query — 对数据库执行一次查询,同样可以执行其他类型的语句(查询、删除等)
connect_errno<>0)
{#在连接数据库失败时提示
echo "连接失败";
echo $db->connect_error;
}
$db->query("SET NAMES UTF8");
#设置数据传输编码为UTF-8,没有设置很容易出现乱码问题
$content=1;
$user="user";
$intime=2131412;
$db->query( "INSERT INTO msg(content,user,intime) VALUES('{$content}','{$use}','{$intime}')" );
#将数据插入数据库中,数据可以是变量
$is = $db->query($sql);
if($is==true){#判断是否插入成功
echo '插入成功';
}else{
echo '插入失败';
}
?>
10、从mysql获得数据
使用query调用mysql语句进行查询并从返回值取得结果
mysqli_result是mysqli获得的结果集,是一个类。当运行失败时,只会得到一个false的布尔值
$sql="SELECT * FROM msg ORDER BY id DESC";
$mysqli_result=$db->query($sql);#$db是实例化的mysqli
$row=$mysqli_result->fetch_array(MYSQLI_ASSOC) ;
#fetch_array是mysqli类中的方法,可以返回数组,可以取出一个结果。不断调用fetch_array()方法会依次显示其他的记录,如果没有记录就会返回null,可以通过while循环取出所有记录。MYSQLI_ASSOC表示不取出数组索引。
echo $row['id'];#根据数组的索引调用数据
#使用while取出所有的数据到二维数组
$rows=[];
while($row = $mysqli_result -> fetch_array(MYSQLI_ASSOC) ){
$rows[ ]=$row;
#表示自动生成二维数组的键。也可以指定:$rows[$row['id']]表示用$row['id']作为键/索引
}
#gbook.php
connect_errno<>0)
{
echo "连接失败";
echo $db->connect_error;
}
$db->query("SET NAMES UTF8");
$sql="SELECT * FROM msg ORDER BY id DESC";
$mysqli_result=$db->query($sql);
if($mysqli_result ===false){
echo "SQL错误";
exit;
}
$rows=[];
while($row = $mysqli_result -> fetch_array(MYSQLI_ASSOC) ){
$rows[ ]=$row;
}
?>
留言板
留言内容