php查漏补遗

news/2024/6/25 16:05:41

本地运行php脚本

运行php文件:php.exe -f "php文件路径"
php.exe -f index.php
运行php代码:php.exe -r "php脚本代码"
php.exe -r "echo \"helloworld!!\";";

时区

设置时区

默认时区不对,需要调整时区

方式一:通过php.ini方式调整

date.timezone=[Asia/Shanghai|PRC]

方式二:在php文件中设置(此方法必须每次php业务代码执行前执行)

date_default_timezone_set('America/Los_Angeles');设置当前时区
date_default_timezone_get();返回当前时区

POST提交

POST与GET变量名相同时

当POST和GET提交的数据名称相同的时候,POST的值会覆盖掉GET的值,可以在php.ini中修改。

request_order="GP"G=GET‘、P=POST,后者覆盖前者,反之亦然

预定义变量

$_Server

大约有30个左右的信息,我们只要知道其中5个左右!

$_SERVER[‘REMOTE_ADDR’]:获取访问者的ip地址(如果用户使用了代理请求或者后端使用了负载,此方法获取的是代理的IP,使用$_SERVER[‘x_forwarded_for’]获取真实的用户IP)
$_SERVER[‘SERVER_ADDR’]:获取服务器所在的ip地址
$_SERVER[‘SERVER_NAME’]:获取服务器的名字,其实就是站点设置中的servername
$_SERVER[‘DOCUMENT_ROOT’]:获取站点的真实物理地址,其实就是站点设置中的documentroot
$_SERVER[‘PHP_SELF’]:获取当前网页地址(不含域名部分)
$_SERVER[‘SCRIPT_FILENAME’]:获取当前网页地址物理路径
$_SERVER[‘QUERY_STRING’]获取当前网页地址中的所有get数据(就是?号后面部分),但只是一个整体的字符串而已。

$GLOBALS

它也是一个“重复性数据”,它里面存储了我们自己定义的所有“全局变量”

$v1 = 1;    //定义了一个全局变量,
此时,就有了这样一个数据:$GLOBALS[‘v1’],其值就是1
echo $v1 ;    //输出1
echo $GLOBALS[‘v1’];    //输出1

常量

设置

// 语法一
define("PI",3.14);
define("NAME","Zhencheng");
// 语法二
const AGE=32;
const SEX='man';

取值

//语法一,直接输出常量名
echo PI;
echo NAME;
//语法二。使用constant()函数获取
echo constant("AGE");
echo constant("SEX")

判断

if( defined("PI") ){echo "已经设置了PI常量";
}

常量的“坑”

// MONEY常量未定义
echo "Money:".MONEY;//当使用一个未定义的常量的时候,系统会直接将该常量当做“有值”的常量去使用,并且其值就是该常量名——虽然也会报错[经测试PHP7下,报WARNING级别错误]!

预定义常量

M_PI: 就是圆周率的常量值;
PHP_OS: 就是php运行所在的操作系统
PHP_VERSION: 就是php的版本号
PHP_INT_MAX: php中的最大的整数值
更多可参考:php手册>附录>保留字列表>预定义常量

魔术常量

根据系统环境变化的值
__FILE__ :代表当前网页文件的完整物理路径
__DIR__ :代表当前网页文件所在的文件夹
__LINE__ :代表当前这个常量名所在的”行号”

字符串

除了常见的单、双引号还有单引号定界符双引号定界符

// "aaa"代表开始,aaa;代表结束,中间所有代表字符串
// "aaa"双引号,中间可以包括(\\、\n、\r、\t、\$)转移符
// 'aaa'单引号,原封不动输出中间的内容
$name1 = <<<"aaa"
111\n\n1
2\t2\r2\$2
aaa;
echo $name1;
echo "\n==============================\n";
$name2 = <<<'aaa'
111\n\n\n\n1
2\t2\r2\$2
aaa;
echo $name2;

布尔值

if($name){//$name存在值
}else{//出现false的情况,代表变量存储的是如下的值是0,   0.0,   “”,   “0”,   null,   array(),   false,   还有一个是“未定义的变量”,“未定义的变量”还会出现Notice级别的异常
}

类型转换

var_dump():用于输出变量的“完整信息”,几乎只用于调试代码。

getType($变量名):获取该变量的类型名字,返回的是一个表示该类型名字的字符串,比如:“string”,“bool”,“double”,“int”
setType($变量名,“目标类型”):将该变量强制改变为目标类型;
isset(), empty(), unset();。。。。省略!

is_XX类型() 系列函数:判断某个数据是否为某种类型,有如下一些:
is_int($x); 判断$x是否是一个整数类型;
is_float($x);
is_string($x);
is_bool($x);
is_array($x);
is_object($x);
is_null($x);
is_numeric($x); 判断$x是否是一个数字!
is_scalar($x); 判断$x是否是一个“标量类型”


http://lihuaxi.xjx100.cn/news/284328.html

相关文章

C语言必须会写的10道经典题(小白必看!)

对于初学C语言的小白们来说&#xff0c;提高进步最快的方式无疑是刷题&#xff0c;反复刷反复思考优化&#xff0c;这里给大家列出几道C语言入门经典好题&#xff0c;对于小白们锻炼思维很不错&#xff0c;下面就一起来看看吧~ 文章目录前言1.写代码将三个整数数按从大到小输出…

专访博世王红星:大数据和AI将是中国制造业升级新动力

数据分析挖掘与工业大数据是智能制造与工业互联网的核心&#xff0c;其本质是通过促进数据的自动流动与智能决策去解决控制和业务问题&#xff0c;有效减少决策过程所带来的不确定性&#xff0c;并尽量克服人工决策的缺点&#xff0c;从而推动智能制造进程与智能工厂的建设&…

几行代码就搞定高端大气的云系统架构图

想知道如何用Python代码绘制出云系统架构图&#xff0c;那么&#xff0c;今天猿妹要和大家分享的这个开源项目你一定喜欢——diagrams。 想知道如何用Python代码绘制出云系统架构图&#xff0c;那么&#xff0c;今天猿妹要和大家分享的这个开源项目你一定喜欢——diagrams。 di…

Eclipse复制或修改项目后,把项目部署后发现还是原来的项目名称

Eclipse复制或修改项目后&#xff0c;把项目部署后发现还是原来的项目名称 解决&#xff1a; 到项目根目录打开.setting文件夹&#xff0c;找到"org.eclipse.wst.common.component" 修改这三处名字要求和部署的项目名称一致就可以了!

这个春节让算法教你:好好吃醋

By 超神经内容提要&#xff1a;据现有文献记载&#xff0c;醋&#xff0c;已有着上千年的历史。在各种调味料中&#xff0c;醋毫无疑问占据着相当重要的位置&#xff0c;在某些特定的菜品里是不可或缺的一份子。怎样才能让酿醋的工艺流传下去&#xff1f;AI 给出了一个完美的解…

简略解释memset函数的用法

memset&#xff1a;将缓冲区设置为指定的字符&#xff0c;作用是在一段内存块中填充某个给定的值&#xff0c;它是对较大的结构体或数组进行清零操作的一种最快方法。 列如语句&#xff1a;char* ret (char*)memset(arr, x,5); 意思是&#xff1a; 将arr数组里面前五个字符设…

UC伯克利计算机系是如何培养计算机人才的?

最近花了一点时间研究加利福尼亚大学伯克利分校(University of California, Berkeley&#xff0c;简称UCB)计算机专业的课程设置&#xff0c;感触颇深。 UCB在计算机科学领域的杰出表现可以在各大主流计算机专业排名中得以体现。 全美大学范围内&#xff0c;UCB在US News 201…

编译可在Nexus5上运行的CyanogenMod13.0 ROM(基于Android6.0)

编译可在Nexus5上运行的CyanogenMod13.0 ROM (基于Android6.0) 作者&#xff1a;寻禹阿里聚安全 前言 下文中无特殊说明时CM代表CyanogenMod的缩写。 下文中说的“设备”均指Android设备。 proprietary-blobs.txt文件的路径&#xff1a;device/lge/hammerhead/proprietary-blo…