Loading

PHP笔记

语法

1. 代码块

php关键字不区分大小写

/*
四种定界符
*/

// 标准
<?php
    // 代码块
?>

// script标记
<script language="php">
// 代码块
</script>

/*
短标记
默认不支持该风格, 需要在php配置文件(php.ini)中开启
short_open_tag = On
*/
<?
    // 代码块
?>

/*
 asp风格
默认不支持该风格, 需要在php配置文件(php.ini)中开启
asp_tags = On
*/
<%
  // 代码块
%>

 

2.注释

<?php
// 单行注释
# 单行注释
/*
多行注释
*/
?>

3. 输出方法

  输出数据 参数个数 返回值
echo 只能输出数字、字符串. 对于布尔型,TRUE输出成1, FALSE输出空 多个
print() 只能输出数字、字符串. 对于布尔型,TRUE输出成1, FALSE输出空 一个 成功返回1,失败返回0
print_r() 输出数组,包括键值, 不包括数据类型 一个 成功返回1,失败返回0
var_dump() 输出变量及变量的数据类型 多个

4.特殊语法

<?php

// 条件判断,也可以使用大括号
if(1): 
  // php语句
else:
  // php语句
endif;  // 结束选择分支

?>

 

5.变量类型强转

<?php
// 将变量b强转为整形
$a = (int)$b;
/*
支持的强转类型有:
int, bool, float, string, array, object, unset, binary(二进制)
*/
?>

 

变量

1. 定义

<?php
//创建变量, $符号标识后面跟的是变量名
$x = 5;
$y = 6;
// 使用变量
echo $x;

// 取变量的地址, 将x变量的地址赋给address
$address = &$x;
// address与x变量指向同一变量
echo $address;

// 销毁变量, 仅销毁变量名
unset($x);

// 可变变量
$a = '12345';
$b = 'a'; # 存放变量名
echo $$b; # 相当于$a

// 定义常量, 常量名不使用$开头, 布尔值标识是否忽略大小写, 默认为false
define('name', 'hujing', true);
echo NAME;
// 判断常量是否已经定义
defined('name');
?>

 

<?php
# 变量的数据类型

/*
基本类型: 
整形, 浮点数, 布尔型, 字符串
*/
// 字符串中, 双引号字符串会将变量名替换, 单引号字符串不会(真正的字符串)
$name = '123';
echo '你好, $name'; # 你好, $name
echo "你好, $name"; # 你好, 123
echo "$name你好"; # 报错, 认为'name你好'是变量名
echo "{$name}你好"; # 如此甚好
echo "${name}你好"; # 同上

/*
复合类型
数组, 对象
*/

/*
特殊类型
NULL
资源类型: 所访问的php外部数据
*/

?>

 

注意:  在php中'+'只做数字加法, 无法拼接字符串, 拼接字符串使用'.'

 

2.数组

<?php
// 创建一维数组
$arr = array("1", "2");
// 可以任意更改数组下标, 不写的即+1, 下面数组下标为 1,2,5
$arr = array(1=>"1", "2", 5=>"3");
// 数组长度
count($arr);

// 创建关联数组(貌似就是字典)
$arr = array("a"=>"1", "b"=>"2");
$arr['c'] = '3';
// 遍历关联数组
foreach($arr as $key=>$value){
    echo $key.$value;
}

// 创建多维数组
$arr = array(
array("a", 2, 3),
array("b", 5, 6) 
)


?>

 

3. 超全局变量

就是任意地方都可以使用都变量

  • $GLOBALS: 全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
  • $_SERVER: 保存关于报头、路径和脚本位置的信息, 其中包含都信息在下方表格中
  • $_REQUEST: 用于收集请求参数,数组, 参数名就是索引
  • $_POST: post请求收集参数使用, 数组
  • $_GET: get请求收集参数使用, 数组
  • $_FILES: 
  • $_ENV
  • $_COOKIE
  • $_SESSION

换行符:PHP_EOL

元素/代码描述
$_SERVER
$_SERVER['PHP_SELF'] 返回当前执行脚本的文件名。
$_SERVER['GATEWAY_INTERFACE'] 返回服务器使用的 CGI 规范的版本。
$_SERVER['SERVER_ADDR'] 返回当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME'] 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。
$_SERVER['SERVER_SOFTWARE'] 返回服务器标识字符串(比如 Apache/2.2.24)。
$_SERVER['SERVER_PROTOCOL'] 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。
$_SERVER['REQUEST_METHOD'] 返回访问页面使用的请求方法(例如 POST)。
$_SERVER['REQUEST_TIME'] 返回请求开始时的时间戳(例如 1577687494)。
$_SERVER['QUERY_STRING'] 返回查询字符串,如果是通过查询字符串访问此页面。
$_SERVER['HTTP_ACCEPT'] 返回来自当前请求的请求头。
$_SERVER['HTTP_ACCEPT_CHARSET'] 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST'] 返回来自当前请求的 Host 头。
$_SERVER['HTTP_REFERER'] 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。
$_SERVER['HTTPS'] 是否通过安全 HTTP 协议查询脚本。
$_SERVER['REMOTE_ADDR'] 返回浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST'] 返回浏览当前页面的用户的主机名。
$_SERVER['REMOTE_PORT'] 返回用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME'] 返回当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN'] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
$_SERVER['SERVER_PORT'] Web 服务器使用的端口。默认值为 “80”。
$_SERVER['SERVER_SIGNATURE'] 返回服务器版本和虚拟主机名。
$_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME'] 返回当前脚本的路径。
$_SERVER['SCRIPT_URI'] 返回当前页面的 URI。

 

4.魔术常量

即php脚本的预定义常量,在每个脚本中都可访问,随代码所在位置不同而不同

  • __LINE__:  当前行号
  • __FILE__: 当前文件的绝对路径
  • __DIR__: 当前所在目录的绝对路径
  • __FUNCTION__: 当前所在方法的方法名,若不在方法中,则为空
  • __CLASS__: 当前类的类名,若不在类中,则为空
  • __TRAIT__: 
  • __METHOD__: 
  • __NAMESPACE__: 

 

内置函数

php内置函数中文参考

数组排序  
sort($arr) 以升序对数组排序
rsort($arr) 以降序对数组排序
asort($arr) 根据值升序
ksort($arr) 根据健升序
arsort($arr) 根据值降序
krsort($arr) 根据健降序
日期
date(format, time)

返回时间字符串

time: 时间戳,默认当前时间

format: 格式化字符串,格式如下

  • Y: 年,四位数
  • m: 月
  • d: 日
  • 1: 星期几
  • h: 时,12小时格式
  • i: 分
  • s: 秒
  • a: 上下午,am或pm
date_default_timezone_set("Asia/Shanghai"); 设置当前时区

mktime(hour,minute,second,month,day,year)

 拿到指定日期都时间戳
   
数据判断  
gettype(var) 获取变量的类型,返回字符串
is_int(var) 是否为整形
is_string(var) 是否为字符串
settype(var, type)

将var转换成type类型,返回是否转换成功。type可能的值如下: 

'bool','int','float','string','array','object','null'

   
URL
htmlspecialchars($url) 把特殊字符转换为 HTML 实体, 就是把<和>之类的 HTML 字符替换为 &lt; 和 &gt; 
其他
parg_match("正则", $str) 正则表达式匹配字符串
include 文件包含命令,将另外的php文件拿过来,若文件不存在,继续执行
require 文件包含命令,将另外的php文件拿过来,若文件不存在,报错,停止执行
ini_set() 临时修改配置文件的值,在运行结束后恢复
ini_get() 获取配置文件中的值
error_reporting() 设置脚本错误报告的级别

 

 

 


 

posted @ 2019-03-03 22:09  烟草的香味  阅读(205)  评论(0编辑  收藏  举报