PHP学习之路——基本语法

2023-11-03

phpinfo是一个函数(功能),这个函数(功能)会显示一个当前电脑(服务器)的详细的PHP信息;
我们写完一段代码,就需要在后面加分号(;);
php的代码部份全部要用半角的英文、很多人容易写成全角的英文和符号造成PHP代码报错。
PHP中的变量也是如此。不过有几个特点:必须要以 开始。如变量 x 必须要写成 开始。如变量x必须要写成 开始。如变量x必须要写成x;
//和#表示单行注释,#用的较少
/* … */ 多行注释
32位计算机一次运算处理的最大范围为-2(32)至2(32)-1。即-10000…()到011111…(正数再加一符号位就变负数了)
正数的补码和反码就等于原码,负数的补码:先求绝对值得原码,然后求反码,然后末位加一;
1000,0000,0000,0000=-32768,最高位1就代表负数;

字界符声明:
1).在变量后面的等号写三个小于号(<<<)。
2).然后在<<<后面写上字符(建议英文大写字符)。如下例中的:ABC
3).然后换行写上任意想写的字符
4).写完后,顶行。在行最开始处,再写上<<<后面的字符和分号。如下例中的:ABC;
在这里插入图片描述
PHP中单引号和双引号的区别(面试重点):
1.双引号解析变量,但是单引号不解析变量。
2.在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。一定要在变 量后面接上特殊字符,例如空格等分开。
3.如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。
4.双引号解析转义字符,单引号不解析转义字符。但,单引号能解析’ 和\;
5.单引号效率高于双引号,尽可能使用单引号;
6.双号和单引号可以互插!!!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。
7.神奇的字符串拼接胶水——(.)点,用来拼接字符串;
8. 我们将定界符声明字符串视为双引号一样的功能来看待。

var_dump() 是一个函数。向括号()中间插入变量。这个函数,会打印出来数据类型,还会对应显示变量的长度和值。
gettype(传入一个变量) 能够获得变量的类型;

主要有以下三空情况会产生空(null)类型:
1.通过变量赋值明确指定为变量的值为NULL;
2.一个变量没有给任何值;
3.使用函数unset()将变量销毁掉;

empty()可以向括号中间传入一个变量。这个变量的值如果为false或者为null的话,返回true;
isset()可以向括号中间传入一个或者多个变量,变量与变量间用逗号分开。只要有有一个变量为null,则返回false。否则,则返回true。
unset()这个函数的功能是毁掉变量。unset(变量)括号中间插入想要毁掉的变量名,这个变量就会被毁掉。

数组声明:$shu = array(1,2,3);

is_int ()是否为整型
is_bool ()是否为布尔
is_float ()是否是浮点
is_string ()是否是字符串
is_array ()是否是数组
is_object ()是否是对象
is_null ()是否为空
is_resource ()是否为资源
is_scalar ()是否为标量
is_numeric ()是否为数值类型
is_callable ()是否为函数

echo 不是函数,是基本语法

PHP在PHP 5.x阶段都是完全的弱类型的编程语言。所谓弱类型,就是在声明变量的时候,不需要指定变量的类型。我要声明一个整型的变量,我不用在前面非得写上类型,再写变量。
PHP 7 的性能有很大的提高。实际测试的结果,PHP 7的性能与PHP5.6相比,提升了性能接近200%。在PHP 7 中有些地方,我们可以强制指定类型,也可以不用强制指定类型来声明变量。

强制类型转换有三种方式:
1.用后面的三个函数可以完成类型转换,intval()、floatval()、strval()
2.变量前加上()里面写上类型,将它转换后赋值给其他变量
3.settype(变量,类型) 直接改变量本身, settype(变量,‘null’); 等价于 unset()一个变量;

知道对象是一个复合类型(所谓复合类型:就是在一个类型中可以同时存入字符串、浮点、整型、布尔等), 对象的英文叫object,var_dump一个变量的时候看到的类型为object的,这个变量就是对象类型

define(常量名,常量值)----define(‘MY_NAME’,‘PHP中文网’);
注:
1.常量值只能为上一章中我们讲到的标量。
2.常量名可以小写,但是通常大写
3.常量名可以不加引号,但是通常加上引号。
4.在字符串中调用常量的时候,必须在引号外面
5.常量名建议只用字母和下划线
defined(常量)----功能:向函数的括号后面传入常量,如果常量定义了就返回true,否则返回false

常见的常量:
LINE 当前所在的行
FILE 当前文件在服务器的路径
FUNCTIOIN 当前函数名
CLASS 当前类名
METHOD 当前成员方法名
PHP_OS PHP运行的操作系统
PHP_VERSION 当前PHP的版本
TRAIT Trait 的名字,php5.4新加
DIR 文件所在的目录
NAMESPACE 当前命名空间的名称(区分大小写)

可变变量,这个词解释的太过于高大上。看起来很有“bigger”。它还有一个叫法,叫作变量的变量。
$shu = ‘biao’;
b i a o = ′ 鼠 标 ′ ; 那么, biao = '鼠标'; 那么, biao=;那么,$shu = 鼠标;

外部变量
$_COOKIE 得到会话控制中cookie传值
$_SESSION 得到会话控制中session的值
$_FILES 得到文件上传的结果
$_GET 得到get传值的结果
$_POST 得到post传值的结果
$_REQUEST 即能得到get的传值结果,也能得到Post传值的结果
请再记一句话:以上这些变量全是超全局的。(以后讲解超全局的含义)。

常用的环境变量的键名和值对应的意思
键名 含义
$_SERVER[“REQUEST_METHOD”] 请求当前PHP页面的方法
$_SERVER[“REQUEST_URI”] 请求的URI
$_SERVER[“SERVER_SOFTWARE”] 用的是哪一种服务器
$_SERVER[“REMOTE_ADDR”] 客户的IP地址
$_SERVER[“SERVER_ADDR”] 当前服务器的IP地址
$_SERVER[“SCRIPT_FILENAME”] 主前请求文件的路径
$_SERVER[“HTTP_USER_AGENT”] 当前访问这个网址的电脑和浏览器的情况
$_SERVER[“HTTP_REFERER”] 上级来源(用户从哪个地址进入当前网页的)
$_SERVER[“REQUEST_TIME”] 当前的时间

PHP支持变量引用:KaTeX parse error: Expected 'EOF', got '&' at position 7: bar = &̲fo;

===(三个等号,我们说他还有一个名字是判断类型等于,他会判断变量的类型是否一致)。而 x 为整型的 5. x为整型的5. x为整型的5.y为字符串类型的5.类型,而上面一段代码,是两个等号不判断类型。

exit 的意思是指在此处停止运行,退出。后面的PHP代码不再执行了。它有两种用法:
1,直接exit; 就是直接退出
2,exit(‘提示内容’),退出的时候还给出一段提示内容

特殊符号使用:
符号 说明
$x? 真代码段:假代码段 判断是否为真假 ? 真情况 : 假情况;
``(反引号) 反引号中间插代命令,执行系统命令,等价于shell_exec函数
@ 单行抑制错误,把这一行的错误不让它显示出来了,效率低不建议使用
=> 数组下标访问符
-> 对象访问符
instanceof 判断某个对象是否来自某个类,如果是的返回true,如果不是返回false

年份能被4整除,但是不能被100整除。 或者能被400整除,即为闰年,其他情况全为平年

函数名与变量命名规则一样,但是不同的是:函数名不区分大小写(意思就是func和FUNC是同一个函数)
函数后如果有默认值和无默认值的参数,通常把无默认值的参数写在最前面;
function plusx2($foo , KaTeX parse error: Expected '}', got 'EOF' at end of input: bar=10){result = ( f o o + foo+ foo+bar)*2; return $result;}

回调函数:在一个调数里面,再传入一个函数名,将函数名加上()括号。识为变量函数,配合执行。准许调用这个函数的时候,还可以传入一个函数配合、协助进行处理。

变量函数:可变函数仅仅是可变变量的一个变种、变形表达。function demo(){echo ‘天王盖地虎’;} $fu = ‘demo’; $fu();

匿名函数:没有名字的函数。第一种用法,直接把赋数赋值给变量,调用变量即为调用函数。 g r e e t = f u n c t i o n ( greet = function( greet=function(name){ echo $name.‘,你好’;}; $greet(‘明天’); 第二种用法,回调式的匿名函数,woziji(20,30,function( $foo , KaTeX parse error: Expected '}', got 'EOF' at end of input: bar){result = ( f o o + foo+ foo+bar)*2;return $result;});

内部函数(函数内部定义函数):外部函数调用两次会报错,如果不调外部函数无法执行内部函数

全局变量: 变量名是等价于 变量名是等价于 变量名是等价于GLOBALS[‘变量名’] 。所有的变量都放到了 G L O B A L S 里面了。而 GLOBALS里面了。而 GLOBALS里面了。而GLOBALS也是全局的。
global $变量1[,变量2,…变量n] 也可以定义出全局变量;

使用函数的重点是三块:

1.了解函数的功能,特别是常用函数的功能

2.了解函数的参数

3.了解函数的返回值

我们针对上面的三块,讲解6个函数,这6个函数,概况了函数的基本用法的全部注意事项:
1.直接返回布尔型,如bool copy ()
2.带有MIXED参数的函数如何调用。Mixed表示任何类型的数据。如Array_unshift()
3.参数中带有&符的参数,一定要传一个变量做为参数。函数里面改变了他的值。
4.带有[]的参数,表示可选项。
5.带有…的参数,表示可以传任意多个参数。
6.带有callback的参数,表示回调函数。需要传一个函数进来。Array_map()
7.函数支持的版本你要了解

copy()函数:返回bool值的,通常为操作是否成功、验证是否通过、检查是否正确等。
这个函数的功能为: 拷备一个文件
返回值为为: bool型值,就是成功返回true,失败返回false
参数为: 两个字符串的值,一个是copy的源文件,一个为目标文件。第三个参数可选的,不常用,我们不管它。

Array_unshift()
int array_unshift ( array &$array , mixed $value1 [, mixed $… ] )
功能: 操作一个数组,向数组中之前插入其他类型的参数。
返回值: int 类型,可能就是插入成功最后的个数
参数: 第一个参数为&符,也就是在操作的过程中,改变了第一个参数的值。引用传参。也就是操作这个数组,向这个数组中传入参数。会直接改变这个数组的值。
第二个参数为mixed,因为数组可以存入多个不同的类型.mixed是指混合的意思。因此,mixed是指可传入任意类型
第三个数数加了中括号,我们所有遇到中括号的。都是指后面的参数可传,也可以不传。
第四,最后还看到了三个…(省略号)。代表可以传入任意多个参数。

strtoupper()字母小写转大写

回调函数案例
在这里插入图片描述

phpinfo()看一下你当前的版本。有的时候可能是因为你的版本太低,或者你所在的版本中没有这个函数,会提示函数不存在。

有require、require_once、include、include- once四种方法包含一个文件
函数 包含失败 特点
Inlcude 返回一条警告 文件继续向下执行。通常用于动态包含
Require 一个致命的错 代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行
Include_once 返回一条警告 除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含
Require_once 一个致命的错 除了原的功能一外,会做一次once检测,防止文件反复被包含

常用的数学函数:
函数名 描述 实例 输入 输出
abs() 求绝对值 a b s = a b s ( − 4.2 ) ; / / 4.2 数字绝对值数字 c e i l ( ) 进一法取整 e c h o c e i l ( 9.999 ) ; / / 10 浮点数进一取整 f l o o r ( ) 舍去法取整 e c h o f l o o r ( 9.999 ) ; / / 9 浮点数直接舍去小数部分 f m o d ( ) 浮点数取余 " abs = abs(-4.2); //4.2 数字 绝对值数字 ceil() 进一法取整 echo ceil(9.999); // 10 浮点数 进一取整 floor() 舍去法取整 echo floor(9.999); // 9 浮点数 直接舍去小数部分 fmod() 浮点数取余 " abs=abs(4.2);//4.2数字绝对值数字ceil()进一法取整echoceil(9.999);//10浮点数进一取整floor()舍去法取整echofloor(9.999);//9浮点数直接舍去小数部分fmod()浮点数取余"x = 5.7; y = 1.3 ; y = 1.3; y=1.3;r = fmod($x, $y);// $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7 " 两个浮点数,x>y 浮点余数
pow() 返回数的n次方 echo pow(-1, 20); // 1 基础数 n次方 乘方值
round() 浮点数四舍五入 echo round(1.95583, 2);// 1.96 一个数值 保留小数点后多少位,默认为0 舍入后的结果
sqrt() 求平方根 echo sqrt(9); //3 被开方的数 平方根
max() 求最大值 “echo max(1, 3, 5, 6, 7); // 7 echo max(array(2, 4, 5)); // 5” 多个数字或数组 返回其中的最大值
min() 求最小值 min 多个数字或数组 返回其中的最小值
mt_rand() 更好的随机数 echo mt_rand(0,9);//n 最小/最大,随机数 随机返回范围内的值
rand() 随机数 echo rand() 最小/最大,随机数 随机返回范围内的值
pi() 获取圆周率值 echo pi(); // 3.1415926535898 无 获取圆周率

设置时区的函数为:
1).date_default_timezone_get()
2).date_default_timezone_set()
//定义一下时区常量,以后你可以放到配置文件里
define(‘TIME_ZONE’,‘Asia/shanghai’);
//执行函数
date_default_timezone_set(TIME_ZONE);
echo date(‘Y-m-d H:i:s’); // 2022-08-05 11:47:53

time()获取当前的unix时间戳(电脑本身不认识时间,我们在电脑里面设置一个时间方便运算。于是我们规定了一种计算方式,unix时间戳。
从Unix纪元(1970 年 1月1日零时)开始到一个时间经过的秒数。);

echo date(‘Y年m月d日’); // 2022年08月05日,很神奇!Y m d,还有H i s
date函数用于将一个时间进行格式化输出,以方便时间的显示或存储。其语法格式如下:
string date ( string $forrnat [, int $tirnestamp] )
在参数列表中:
t i m e s t a m p 是一个时间戳,函数将这个时间戳按 timestamp是一个时间戳,函数将这个时间戳按 timestamp是一个时间戳,函数将这个时间戳按format规定的格式输出。
如果$timestamp没有输入值,则默认为当前的时间。
$format是一个时间输出格式的字符串,需要使用规定的字符构造输出格式。
date函数的格式参数表:
字符 说明 返回值
d 月份中的第几天,有前导零的2 位数字 01 到31
D 英文星期几,3个字母 Mon到Sun
j 月份中的第几天,没有前导零 1 到31
l(字母) 英文星期几 Sunday到 Saturday
N 1格式数字表示的星期 1(表示星期一)到7(表示星期天)
S 每月天数后面的英文后缀,2个字符 st,nd,rd或者th。可以和jg一起用
w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
z 一年中的第几天 0到366
W 年份中的第几周,每周从星期一开始 42(当年的第42周)
F 月份,完整的文本格式 January 到 December
m 数字表示月份,有前导零 01 到 12
M 3个字母缩写表示的月份 Jan 到Dec
n 数字表示月份,没有前导零 1 到 12
t 给定月份所应有的天数 28 到 31
L 是否为闰年 如果是闰年为1,否则为o
o 格式年份数字 例如2007
Y 4 位数字完整表示年份 例如1999或2008
y 2 位数字表示的年份 例如99或08
a 小写的上午和下午值 am或pm
A 大写的上午和下午值 AM或PM
g 小时,12小时格式,没有前导零 1到12
G 小时,24小时格式,没有前导零 0 到 23
i 有前导零的分钟数 00 到 59
s 秒数,有前导零 00到59
e 时区标识
U 从Unix纪元开始至今的秒数 长整型数字

getdate用来获取当前系统的时间,或者获得一个时间戳的具体含义。时间戳是一个长整数,表示getdate的语法格式如下所示。
array getdate ([ int $timestamp = time() ] )
函数的返回值是一个根据timestamp得到的包含有时间信息的数组。如果没有参数,则会返回当前的时间。getdate返回的数组,键名包括时间和日期的完整信息。
键名 说明 返回值
secnods 秒 数字0到 59
minutes 分钟 数字0到59
hours 小时 数字 0到 23
mday 月份中第几天 数字 1到 31
wday 星期中第几天 数字0(表示星期天)到6(表示星期六)
mon 月份 数字 1 到 12
year 年 4 位数字表示的完整年份
yday 一年中第几天 数字0到365
weekday 星期几的英文 Sunday到 Saturday
month 月份的英文 January 到 December
0 自从Unix纪元开始的秒数 长整型数字

print_r可以输出一个数组中所有的键名与值;

bool checkdate ( int $month , int $day , int $year );如果是有效的时间就返回真,如果不是有效的时间就返回假。例如2011年没有2月29日。

int mktime (int $hour [, int $minute [, int $second [, int $month [, int d a y [ . i n t day [. int day[.intyear [, int $.is_dstl.l } ] ] 31 )
mktime()函数可以对一个日期和时间获得一个本地化时间戳;

int strtotime ( string $time [, int $now = time() ] )
它能将将英文文本的日期时间描述解析为 Unix 时间戳。传入一个字符串的时间,
//下一个星期四
echo strtotime(“next Thursday”);

mixed microtime ([ bool $get_as_float ] )
microtime()这个函数,能够返回当前 Unix 时间戳和微秒数(精度特别高)。

中文主要用的是GBK和utf-8两种编码格式。
GBK和utf-8是两个不同的编码委员会对于汉字进行的编码的标准。
他们规定GBK是双字节,也就是一个汉字占用2Bytes。
utf-8是三字节,一个汉字占用三个字节长度的存储空间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP学习之路——基本语法 的相关文章

随机推荐

  • Spark 系列教程(2)运行模式介绍

    Spark 运行模式 Apache Spark 是用于大规模数据处理的统一分析引擎 它提供了 Java Scala Python 和 R 语言的高级 API 以及一个支持通用的执行图计算的优化引擎 Spark Core 是 Spark 的核
  • 【AI思维空间】ChatGPT纵横编程世界,点亮智慧火花

    作者 京东零售 王英杰 概述 该文档记录云交易开发小伙伴儿们在开发过程中的实际应用案例 记录典型案例 以解决开发过程中的实际问题为主 涵盖设计方案 编码 测试 集成 部署等等 目的 贡献最佳实践 分享心得 共同成长 1 怎样构造Prompt
  • chatgpt赋能python:Python多行连一行:简便省事的代码优化方法

    Python多行连一行 简便省事的代码优化方法 在Python编程中 经常会遇到多行代码的情况 这不仅降低了代码的可读性 也增加了调试的难度 为了解决这个问题 Python提供了多行连一行 以反斜杠 结尾 的语法 以便将多行代码转化为单行代
  • 动态规划学习

    动态规划 动态规划简介 什么是动态规划 动态规划和递归区别 动态规划和分治区别 动态规划解决步骤 动态规划类别 1 坐标型动态规划 2 位操作型动态规划 3 背包型动态规划 动态规划简介 什么是动态规划 动态规划是运筹学中用于求解决策过程中
  • python已知两边求第三边_已知两边求第三边公式

    如果是三角形是直角三角形 知道两边 可以用勾股定理求出第三边 如果是三角形是普通三角形 锐角 钝角三角形 那这个条件下只能求出第三边的范围 两边之和大于第三边 两边之差小于第三边 求边公式 只知道两边相等如果一个是底边一个是腰的话 这个是正
  • 数学建模写作与排版

    1 2 数学建模 快速入门 上 1 3 数学建模 快速入门 下 写作部分 首页 论文标题 摘要 关键词 一 问题重述 二 问题分析 三 模型假设 四 符号说明 五 模型的建立与求解 六 模型的分析与检验 七 模型的评价 改进和推广 八 参考
  • NFS环境搭建

    NAT模式下 安装NFS sudo apt install nfs kernel server 重启NFS服务器 sudo etc init d nfs kernel server restart 修改配置文件 etc exports 在里
  • 灰色关联分析法

    与灰色预测模型一样 比赛不能优先使用 灰色关联往往可以与层次分析结合使用 层次分析用在确定权重上面 1 确定比较对象 评价对象 就是数据 并且需要进行规范化处理 就是标准化处理 见下面例题的表格数据 和参考数列 评价标准 一般该列数列都是1
  • windows下能搭建php-fpm吗 phpstudy

    这个Windows和Linux系统是不一样的 因为一般nginx搭配php需要php fpm中间件 但是Windows下需要第三方编译 下载的包里有php cgi exe 但不是php fpm如果想在windows上跑php fpm 据说可
  • 【ES】分布式集群

    ES 分布式集群 单节点集群 故障转移 水平扩容 应对故障 路由计算 本文主要参考尚硅谷的资料 少部分自己原创 有错误之处请指出 单节点集群 node 1001配置如下 集群名称 节点之间要保持一致 cluster name my elas
  • C++ PCL库实现最远点采样算法

    最远点采样 Farthest Point Sampling 简称FPS 是点云处理领域中的一种重要算法 用于对点云数据进行快速降采样 最早的最远点采样算法应该是在计算机图形学领域中提出的 用于在三维模型上进行表面重建 随着点云处理技术的发展
  • HDU--1200:To and Fro (字符串)

    1 题目源地址 http acm hdu edu cn showproblem php pid 1200 2 解题代码 include
  • 服务器远程使用什么协议,云服务器远程是什么协议

    云服务器远程是什么协议 内容精选 换一换 弹性云服务器 Elastic Cloud Server 是一种可随时自动获取 计算能力可弹性伸缩的云服务器 可帮助您打造可靠 安全 灵活 高效的应用环境 确保服务持久稳定运行 提升运维效率 WinS
  • Jira 史诗指南 (2022)

    Jira 就是为了完成工作 而 Epics 是实现该目标的一种有价值的方式 一般来说 Epics 适用于顾名思义 不会在一天内完成但会 的工作 史诗 在本指南中 我们将分解什么是 Epics 它们的用途 以及它们的用途 以及如何创建和使用它
  • Qt 应用程序显示页面的方法

    1 在qt窗口中显示页面 1 pro中添加 QT webkitwidgets 2 添加头文件 include
  • Swift4.0 guard,Array,Dictionary

    guard的使用 guard是Swift新增语法 guard语句必须带有else语句当条件表达式为true时候跳过else语句中的内容 执行语句组内容 条件表达式为false时候执行else语句中的内容 跳转语句一般是return brea
  • Web服务器群集:Nginx网页及安全优化

    目录 一 理论 1 Nginx网页优化 2 Nginx安全优化 3 Nginx日志分割 二 实验 1 网页压缩 2 网页缓存 3 连接超时设置 4 并发设置 5 隐藏版本信息 6 脚本实现每月1号进行日志分割 7 防盗链 三 总结 一 理论
  • 上海交大ACM班C++算法与数据结构——数据结构之栈

    上海交大ACM班C 算法与数据结构 数据结构之栈 1 栈的定义 后进先出LIFO first in last out 先进后出FILO first in last out 的线性表 有关线性表可查看 上海交大ACM班C 算法与数据结构 数据
  • HTML ,CSS ,JS 组合运用制作登录界面,注册界面,相册旋转展示界面,并相互跳转联系,源代码

    完成 个人相册 项目登录页面 要求 1 使用正则表达式验证邮箱 2 密码长度至少为6位且为字母与数字的组合 可自行改变背景图片 此时所用图片与项目在同一目录下 只需写入文件名 图片要在与项目同级目录下 要写入路径及名称 登录界面所有代码如下
  • PHP学习之路——基本语法

    phpinfo是一个函数 功能 这个函数 功能 会显示一个当前电脑 服务器 的详细的PHP信息 我们写完一段代码 就需要在后面加分号 php的代码部份全部要用半角的英文 很多人容易写成全角的英文和符号造成PHP代码报错 PHP中的变量也是如