php
PHP
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。
php标记:当php开始解析一个文件时,会寻找起始和结束标记,也就是<?php和?>
分隔符号,php在每个语句结束必须添加一个英文分号( ; ),不加一定会报错。
注释方式:单行注释(//)多行注释(/* */)# 这也是单行注释 支持C、C++、unix shell风格等注释方法,但保持js注释风格即可。
PHP echo 和 print 语句
输出方式:echo和print命令表示输出,写在echo与print后面的代码能直接被显示出来。
两个方法有无括号都可以进行输出,print返回值:1 echo 比 print 稍快,因为它不返回任何值。
php变量
描述:变量是所表示的值可发生改变的量
在php中变量用美元符($)后面跟变量名来表示
语法:$变量名
注意:(1)大小写是敏感的。
(2)php变量可以直接在写出变量名后直接使用,而不需要像js的“声明赋值”过程。
(3) PHP 有三种不同的变量作用域:local(局部)global(全局)static(静态)
注:全局变量与局部变量在程序结束后回全部取消,而静态变量在下次程序运行仍然是上一次最后调用的值。
php数据类型:字符串、整数、浮点数、逻辑、数组、对象、NULL。
字符串(String):引号内任何文本,可以使用单号或者双引号
整数(Integer):1.必须至少一个数字(0-9);2.不能含有逗号或空格;3.不能带小数;4.正负均可;5可以使用十进制、八进制(前缀是0)、十六进制(前缀是0x)
浮点数(Float):浮点数是有小数点或指数形式的数字。
逻辑(Boolean):逻辑是 true 或 false。
数组(Array):数组在一个变量中存储多个值。
对象(Object):对象是存储数据和有关如何处理数据的信息的数据类型。
空值(NULL):表示无值
php运算符:
- 算术运算符:+(加)、-(减)、*(乘)、/(除)、%(取余)
- 赋值运算符:PHP 中基础的赋值运算符是 "="。这意味着右侧赋值表达式会为左侧运算数设置值。(注:可以在赋值号面前加运算符,比如 x+=y 等于 x=x+y,以此类推!)
- 字符串运算符:php中使用“.”来进行字符拼接,而不是“+”,也可以使用“.=”串接赋值
- 比较运算符:==(等于)、===(全等(完全相同))、!=(不等于)、<>(不等于)、!==(不全等(完全不同))、> (大于)、< (小于)、>=(大于或等于)、<=(小于或等于)
- 逻辑运算符:and(与)、or(或)、xor(异或,当两个结果不同时为true)、&&(与)、||(或)、!(非)
- 递增/递减运算符:递增:$x++(先运算,后加1) 、++$x(先加1,后运算) 递减类似,只是操作换成减(-)
注:数组的相加(联合)使用“+”符号进行运算,其他的运算符与上相同,数组的运算不会覆盖重复值。
php基础方法
$x =1; //声明一个变量
phpinfo(); //显示PHP的当前信息
echo "HelloWord"; //输出内容
echo gettype($cars); //返回变量或者表达式的类型
var_dump($cars); //返回变量类型和值
strlen("Hello world!"); //得到字符串长度
strpos("Hello world!","world"); //搜索字符或文本,成功找到返回位置,否则返回false
define("talk","Hello world!"); //定义常量,第一个为常量名字,第二个为常量值,第三个为设置是否对常量名字大小写敏感,默认false
注:常量自动贯穿脚本全局
If(判断语句的三种写法)
if($x == $y){ //判断是否等于,等于则运行
echo "Yes";
}
if($x == $y){ //判断是否等于,等于则运行
echo "Yes";
}else{ //不等于时运行的代码
echo "No";
}
If($x == $y){ //判断是否等于,等于则运行
Echo “Yes”;
}elseif($x >= $y){ //判断是否大于,等于则运行
}elseif{ //不等于时运行的代码 }
switch语句:
switch($x){ //传递一个变量(常量)或表达式
case 1: //对case的值进行对比,相同则运行
echo "Numer 1"; //为真则运行的代码
break; //每段case代码块末尾必须加break声明结束,否则会跳到下面代码运行,影响程序运行
case 2:
echo "Numer 2";
break;
case 3: //case结构可以写多个
echo "Numer3";
break;
default: //如果没有与case相同则运行default,default只能写一个
echo "No";
}
while($x<=5){ //判断$x是否小于等于5,如果等于则为true,运行下面代码,运行完毕再进行一次判断
echo "这个数字是:$x<br/>"; //为真则运行的代码
$x++; //在最后进行变量递增(自加一),如果不加类似的代码,则程序一直运行,卡死在循环当中
}
do{ //不论条件是否满足,先运行一次程序,再进行判断循环
echo "这个数字是:$x<br/>";
$x++;
}
while($x <= 5);
for($x = 0; $x <= 9; $x++){ //循环输出
echo "数字是:$x <br/>";
}
$x =array("wangming","lisi","zhangsan"); //添加一个数组
foreach($x as $value){ //此循环使用于数组,用来遍历数组,获取每个值。
echo $value;
}
function writeMsg(){ //声明一个函数
echo "Hello world!"; //函数内的代码需要调用才会运行
}
writeMsg(); //调用无参函数
function writeMsg($name){ //声明一个有参函数,调用时,需要传递参数
echo "Hello $name ";
return null; //设置函数的返回值 ,可以不写
}
注:return可以不写,但是写的话要在函数代码末尾,return一运行,返回值代表函数结束,将不会运行下面的代码
writeMsg("lisi"); //调用有参函数
$x =array("wangming","lisi","zhangsan"); //添加一个数组
$cars[0]="Volvo"; //将值添加到数组当中,并指定索引
echo count($x); //返回数组的长度(元素数量)
$age =array("jho" => 18, "Ben" => 32, "peter" => 23); //创建一个关联数组
$age['lisi'] =21; //也可以这样添加
foreach($age as $name =>$value ){ //使用foreach循环遍历关联数组
echo "key=".$name," value=".$value;
echo "<br/>";
}
sort($sort); //升序排列
rsort($sort); //降序排列
asort($student); //根据值对数组进行升序排列
ksort($student); //根据键对数组进行升序排列
arsort($student); //根据值对数组进行降序排列
krsort($student); //根据键对数组进行降序排列
php类和对象,属性与关键字
class Person{ //定义一个类
public $peoName =''; //定义公共的属性(变量)
private $age = 18; //定义私有的属性
function showSlef(){ //定义函数(方法)
echo "你好!";
}
public function reveal(){ //定义一个公共的方法,去调用私有的属性或函数,从而实现外部调用
echo $this->age; //重点使用$this->调用的函数
}
}
$student = new Person; //实例化对象
echo $student->showSlef(); //使用->调用方法
$student->reveal(); ->实现调用私有方法(属性也可以)
php类的属性与方法修饰符:
public(公共,不写默认这个方法)、protected(受保护)、private(私有)
class person{
const study ="Hello"; //定义一个常量,一经定义无法修改
static $studys ="world"; //定义静态变量,可以修改
}
echo person::study; //使用类名直接使用类名::常量名调用
echo person::$studys; //调用静态变量
//注:1.常量和静态变量可以直接使用类名::常量名的方式进行调用,也可以实例化后用对象调用
//2.静态变量只运行一次,先运行一次,再实例化对象,静态变量仍然是上次运行的值
class student extends person{ //使用extends继承父类
}
echo student::$studys; //直接调用父类的静态变量
//$students = new student; //实例化子类
//$students->Test(); //调用父类的方法
php后台get与post请求处理
(0)$_POST这个内置对象,表示接收到的前端发送过来的post请求数据包
(1)$_GET这个内置对象,表示接收到的前端发送过来的get请求数据包
(2)echo 代表返回前端指定数据
(3)json_encode(对象),来将数组或对象等复杂值转换成json格式
例:
//接受并处理有参的ajax请求
$successArr = array('mag'=>'ojbk','info'=>$_GET);
echo json_encode($successArr); //将发送过来的get数据返回去
//接受并处理post请求
$successArr =array('mag'=>'ojbk','info'=>$_POST);
echo json_encode($successArr); //将发送过来的post数据返回
php mysql数据库操作
//注:mysqli_connect(数据库地址,数据库账号,密码,数据库名),数据库连接格式
对数据库查询:
$con = mysqli_connect('localhost','root','root','db'); //连接数据库
if($con){ //判断是否连接成功
mysqli_query($con,'set names utf8'); //防止数据包含中文时出现乱码的预解决
mysqli_query($con,'set character_set_client=utf8'); //设置client(客户端)的编码为utf8,防止出现乱码情况
mysqli_query($con,'set character_set_result=utf8'); //设置server(服务器)的编码为utf8
$sql ="select * from userlist where 1"; //定义一条数据语句
$result = $con->query($sql); //执行数据库语句
if($result->num_rows>0){ //如果查找不为空的话
$info = []; //定义一个空数组,用于存储接受的数据库信息
//通过遍历的方式使用fetch_assoc()方法将数据一条一条存储数组
for($i=0; $row=$result->fetch_assoc(); $i++){
$info[$i]=$row;
}
//循环结束后查询的后的数据都在数组,在这里对数组数据进行操作
//print_r($info);
}
}else{
echo "连接失败";
}
sql语句格式:
1. sql查询语句:Select 【字段名,或者用*代表全部】 from 【表名】where 【查询条件】
2. sql添加语句:insert into表名(字段1,字段2...)values(‘值1’,’值2’);
或:insert into 表名 values(‘值1’,’值2’) //注:这种写法需写完全值
3. sql修改语句:update 表名 set 字段1=‘新值1‘... where 条件(找数据唯一性)
注:where后面的条件可以和修改的内容相同。
4. sql删除语句:delete from 表名 where 条件(最好,找数据的唯一)