php

三种输出方法

  1. echo
    打印一个或多个字符串,字符串之间以分号分隔,以 点 . 进行字符串拼接
  2. print
    打印一个字符串
  3. print_r
    打印一个或多个字符串,字符串之间以分号分隔

变量

变量用$声明,后面紧跟变量名称

$a = 10;
$b = 20;
echo($a+$b);
//  30

在函数内如何访问全局变量

  1. 借助结构global关键词
$a = 10;
$b = 20;
echo($a+$b);//30
function fn(){
	global $a,$b;
	$a = 10;
	$b = 20;
	echo($a+$b);//300
}
  1. 借助超级全局变量$GLOBALS
$a = 10;
$b = 20;
echo($a+$b);//30
function fn(){
	$GLOBALS["a"] = 100;
	$GLOBALS["b"] = 200;
	echo($a+$b);//300
}
	echo($a+$b);//300

php常量

  1. const
const a = 100;
  1. define(name,val)
define(b,200);

php数据类型

var_dump()函数返回数据类型和值

$int = 100;
var_dump($int); //int
$str = "hello";
var_dump($str); //string(5)

判断数据类型

is_string,is_integer…
判断正确返回1,否则返回空

$int = 100;
echo is_int($int); //1=>true
$str = "hello";
echo is_string($str); //1=>true

字符串拼接

  1. 并置运算符 .
$a="hello";
$b="world";
$c=$a." ".$b;
//$c="hello world";
  1. 直接拼接(仅使用双引号,单引号不适用)
$a="hello";
$b="world";
$c="$a $b;
//$c="hello world";
数组的取值拼接要将值使用{}包裹起来
$a="hello";
$b="world";
$c="$a $b;
//$c="hello world";

字符串方法

  1. strlen()
    返回字符串长度(字节数)
$str = "hello world!哈哈";
$len = strlen($str);/$len = 16;
  1. strpos()
    查找某段字符串在字符串中第一次出现的位置,返回其下标,若未查询到则返回false
$str = "good good study , day day up";
$index = strpos($str,"day");//$index=18;
  1. explode()
    用特定的字符 将字符串切割为数组 (类似split)
$str = "good good study , day day up";
$arr = explode(" ",$str);
/*$arr = Array
	(
	    [0] => good
	    [1] => good
    	[2] => study
    	[3] => ,
    	[4] => day
    	[5] => day
    	[6] => up
	)*/
  1. implode() 和 join()
    用特定的字符 将数组拼接为字符串 (类似join)
$arr = array("good","good","study",",","day","day","up");
// $str = implode(" ",$arr);
$str = join(" ",$arr);
//$str = "good good study , day day up";
  1. str_ireplace() 用新的字符串替换旧的字符串(忽略大小写)
    str_replace() 用新的字符串替换旧的字符串(不忽略大小写)
$str = "good good study , day day up";
$newStr = str_replace("day","money",$str);
$newStr = "good good study , money money up";

数组

方法

  1. count()
    返回数组的长度
  2. print_r()
    以结构显示数组
  3. array_unshift();  头部新增
    array_push();     尾部新增
    
    array_shift()   头部删除
    array_pop()     尾部删除
    
$arr = array("x","y","z");
array_unshift($arr,1);
array_push($arr,4);
//$arr=array(1,"x","y","z",4);

array_shift($arr);
array_pop($arr);
//$arr=array("x","y","z");
  1. array_splice() 任意位置增删改
    array_splice($arr,startIndex,length,$arr)
    $arr:要改变的数组
    startIndex:删除元素的开始位置,若为负数则从尾部数起
    length:要删除的长度,为0则不删除
    $arr:要插入的数组或字符串
$arr = array("x","y","z");
array_splice($arr,1,1);
//$arr = array("x","z");
array_splice($arr,1,0,"hello");
//$arr = array("x","hello","z");
array_splice($arr,1,1,"hello");
//$arr = array("x","z");
  1. array_slice()
    取出数组中的一段值并返回
    array_slice(array, startIndex,length,preserve);
    preserve:设置返回的数组是否保留键名(true false),若有字符串键名则默认保留,否则默认重置键名
$arr = array("a"=>"x","b"=>"y","c"=>"z");
$newList = array_slice($arr,1,1);
//$newList = array("b"=>"y");
  1. array_reverse();
    返回反转后的新数组
$arr = array("x","y","z");
$list = array_reverse($arr);
//$arr = array("z","y","x");
  1. join()/implode()
    数组转字符串
    join()/implode(array,separator)
    separator:规定拼接数组元素的值,默认为空字符串 “”
$arr = array("x","y","z");
$str = join($arr,"");
$str = implode($arr,"");
//$str = "xyz";
  1. in_array()
    判断数组中是否存在某元素,存在返回true,否则返回false
    in_array(search,array,type)
    type:若设置为true,则以===来判断,若search值为字符串,搜索时会区分大小写
  2. array_unique()
    传入一个数组,返回去重后的新数组
  3. 数组排序
    若为非数值,则以对应的ASCII码来排序
    a.普通数组(数值数组)
sort() - 对数组进行升序排列

rsort() - 对数组进行降序排列

b. 关联数组;

ksort() - 根据关联数组的键,对数组进行升序排列;
krsort() - 根据关联数组的键,对数组进行降序排列;

asort() - 根据关联数组的值,对数组进行升序排列;
arsort() - 根据关联数组的值,对数组进行降序排列;

关联数组

以键值对形式存在的数组,类似js的对象

$arr = array(
"Perter"=>35,
"jone"=>19,
"Tom"=>25);
 //也可通过$arr["Tom"]=25 或$arr->"Perter"的方式赋值/取值
 foreach($arr as $val){
	echo $val."<br>"
}

遍历关联数组

foreach($age as $x=>$x_value){   
	// $array  as $key=>$val
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}

多维数组

$goods=array(
	array(
		"goodsId"=>"A001",
		"goodsName"=>"华为""goodsMsg"=>"华为荣耀V5""buyNum"=>1
	)
	array(
		"goodsId"=>"A001",
		"goodsName"=>"华为""goodsMsg"=>"华为荣耀V5""buyNum"=>1
	)
);

JSON

  1. json_encode()

    将PHP语法中的数组转为JSON字符串
     json_encode()默认会将数据中的中文编码,前端接收数据解析之后还是正常数据``
     代码在服务器上执行,结果以纯文本/HTML/json形式返回给浏览器(关联数据转化为json类型的字符串时就是对象结构)
    前端请求的数据就是php文件echo输出的文本/HTML /json,一个接口一般只返回一条纯json字符串
    
  2. json_decode()

    将json字符串转换为PHP语法中的数组
    

循环

  1. for
  2. while
  3. do…while
  4. foreach
    用于数组遍历
$arr=array("a","b","c");
foreach($arr as $value){
	echo $value.","
}
//a,b,c,0

ajax提交php

post提交

var xhr = new XMLHttpRequest;
  1. post提交数据时将参数数据队列作为一个参数放到send中
xhr.open("post","php/post.php");
  1. 设置请求头(配置提交的表单数据类型Content-Type: application/X-www-form-urlencoded)
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  1. 提交数据
xhr.send(`user=${user}&pwd=${pwd}`);

超级全局变量

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_COOKIE
  • $_SESSION
  1. $GLOBALS
    $GLOBALS 是一个包含了全部变量的全局组合 /数组。变量的名字就是数组的键。
$a = 100;
$b = 200;
echo $GLOBALS["a"] + $GLOBALS["b"];
  1. $_SERVER
    $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
属性描述
$_SERVER[‘SERVER_ADDR’]当前运行脚本所在的服务器的 IP 地址。
$_SERVER[‘SERVER_NAME’]当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定
$_SERVER[‘SERVER_PROTOCOL’]请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER[‘REQUEST_METHOD’]访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT”。
$_SERVER[‘REQUEST_TIME’]请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)
$_SERVER[‘QUERY_STRING’]query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER[‘REMOTE_ADDR’]浏览当前页面的用户的 IP 地址。
$_SERVER[‘REMOTE_HOST’]浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER[‘REMOTE_PORT’]用户机器上连接到 Web 服务器所使用的端口号。
属性描述
$_SERVER[‘SERVER_ADDR’]当前运行脚本所在的服务器的 IP 地址。
$_SERVER[‘SERVER_NAME’]当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定
$_SERVER[‘SERVER_PROTOCOL’]请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER[‘REQUEST_METHOD’]访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT”。
$_SERVER[‘REQUEST_TIME’]请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)
$_SERVER[‘QUERY_STRING’]query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER[‘REMOTE_ADDR’]浏览当前页面的用户的 IP 地址。
$_SERVER[‘REMOTE_PORT’]用户机器上连接到 Web 服务器所使用的端口号。
@header("content-type:text/html;charset=utf-8");

echo "服务器地址:"."{$_SERVER['SERVER_ADDR']}<br>";
echo "服务器的主机名:"."{$_SERVER['SERVER_NAME']}<br>";
echo "服务器的主机名的端口:"."{$_SERVER['SERVER_PORT']}<br>";
echo "请求页面时通信协议的名称和版本:"."{$_SERVER['SERVER_PROTOCOL']}<br>";

echo "访问页面使用的请求方法:"."{$_SERVER['REQUEST_METHOD']}<br>";
echo "请求开始时的时间戳:"."{$_SERVER['REQUEST_TIME']}<br>";

echo "query string(查询字符串):"."{$_SERVER['QUERY_STRING']}<br>";

echo "浏览当前页面的用户的 IP 地址:"."{$_SERVER['REMOTE_ADDR']}<br>";
echo "用户机器上连接到Web服务器所使用的端口号:"."{$_SERVER['REMOTE_PORT']}<br>";
  1. $_GET
    $_GET 广泛接收以GET方式传递过来的数据 (form传递/ajax传递),我们可以使用超级全局变量 $_GET 来对应字段(键名)的数据

HTML界面结构:

<form action="../php/get.php" method="GET">
    <div>
        <label for="user">用户名</label>
        <input name="user" type="text">
        <span class="user_span"></span>
    </div>
    <div>
        <label for="pwd">密码:</label>
        <input name="pwd" type="text">
        <span class="pwd_span"></span>
    </div>
    <div>
        <button id="logBtn">注册</button>
        <input type="reset">
    </div>
</form>

php界面:

$user = $_GET["user"];  
$pwd = $_GET["pwd"];
echo $user."=>".$pwd;
  1. $_POST
    $ _POST广泛接收以POST方式传递过来的数据 (form传递/ ajax传递),我们可以使用超级全局变量$ _POST 来对应字段(键名)的数据(与$_GET用法相同)
  2. $_REQUEST
    $_REQUEST 广泛接收以(get/post都可以)方式传递过来的数据 (form传递/ajax传递),我们可以使用超级全局变量 $_REQUEST 来对应字段(键名)的数据
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页