PHP学习之路——基本语法

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是三字节,一个汉字占用三个字节长度的存储空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值