搜索
首页后端开发php教程PHP基础语法随记,PHP基础语法_PHP教程

PHP基础语法随记,PHP基础语法

PHP常量:

预定义常量:

PHP自身也定义了大量的预定义常量,可以使用get_defined_constants()来查看,比较常用的预定义常量有:

PHP_OSPHP系统。

PHP_VERSIONPHP版本。

PHP_EOL换行符(跨平台移植型,很重要),会根据不同的操作系统使用不同的值。不同操作系统换行符不同。 window: \r\n   *nix: \n  MAC: \r

PHP_INT_MAX整形的最大值。

PHP_INT_SIZE整形占用的字节数。

PATH_SEPARATOR环境变量中路径与路径间的分隔符。

DIRECTORY_SEPARATOR目录分隔符。window下 '\' 和 '/'都可以, *nix只能使用'/'。

魔术常量:

形似常量,实非常量,语法上类似常量,称之为魔术常量!

__FILE__:完整的文件路径和文件名。典型的应用(项目代码)如:

define('ROOT_PATH',str_replace('7.php','',__FILE__));

echo ROOT_PATH;

结果等同(__DIR__,该常量在PHP5.3新增)

 

__FUNCTION__:获得当前的函数名的魔术常量!

 

PHP进制的转换

在PHP中,提供了一系列函数进制的转换:

hex:16进制;dec:10进制;oct:8进制;bin:2进制。

如:decbin(),将10进制数转换2进制数;octhex()将8进制转换成16进制。

 

对于整形,一旦数值过大,不会溢出,而是发生类型转换,会转成浮点型。

php不支持无符号整型。

如:

$a = PHP_INT_MAX;  //2147483648

$b = $a+1;

var_dump($b);   //float

 

在php中,float,double 实际上是相同的。浮点数具有14位十进制数字的精度,最大值 和平台相关,通常是 1.8e308。浮点数的比较是不靠谱的。在编写程序的时候,不要试图通过比较两个浮点数是否相等来获得业务逻辑。

 

字符串的定义方式

有四种方式来定义字符串:双引号,单引号,heredoc(定界符),nowdoc(定界符)

双引号可以解析变量,单引号不能解析变量。单引号可以包含双引号,双引号可以包含单引号,但是引号不能包含引号自身。

变量能不能解析,不是取决于变量被哪一个包含,而是取决于定义字符串是单引号还是双引号,如果是双引号,则变量解析,如果是单引号,则不解析。

在字符串中,如果有{$ 连在一起的时候,就表示{}当中的这个作为一个变量进行解析。

 

变量被认为NULL的情况

1.被赋值为 NULL

2.尚未被赋值

3.被unset()

最常见的一个应用就是将对象的值赋值为NULL,以销毁该对象。

 

数据类型相关函数

var_dump()打印变量的详细信息,包括类型和值。

gettype()获得类型。

settype()设置类型。

is系列:其中is_array()会经常用到。

isset()检查一个变量是否存在(设置)。

empty() : 检查一个变量是否为空.

对于isset()而言,只要有声明过(有值),不管他的值是什么,都返回true.

对于empty()而言,相当于boolean(变量),然后再来取反.

 

转换成布尔型被认为是FALSE的情况

1.布尔值 FALSE 自身

2.整型值 0 (零)

3.浮点型值 0.0 (零)

4.空字符串, 以及 字符串 "0" (注意"00"、"0.0"被认为是TRUE)

5.空数组

6.特殊类型 NULL (包括尚未设定的变量)

所有其它值都被认为是 TRUE(包括对象和资源)。

PHP的运算规则

除法运算的结果,可能是浮点数,也可能是整数。

在取模运算中,如果有小数,则会去除小数部分。

在取模运算中,结果的正负取决于第一个数。

 

原码

将十进制转成的二进制。用最高位表示符号位,0表示正数,1表示负数。

反码

对于正数,反码和原码相同

对于负数,符号位不变,其它位取反。

补码

对于正数,补码和原码相同

对于负数,在反码的基础上 + 1。

 

转码的时候符号不变,运算的时候符号位参与运算,

移位运算

右移:低位溢出,符号位不变,高位用符号位补全 (相当于除以2的n次幂,然后取整)

左移:高位溢出,符号位不变,低位补0 (相当于乘以2的n次幂)

不管是左移还是右移,它只会改变该数的大小,不改变符号,所以在移位操作的时候,符号位始终是不变的。

PHP运算符号优先级

and or 和 && ||的区别。

用法相同,优先级不同。  && 、|| > = > and 、 or

 

break:终止,当执行到break时,整体的循环循环语句直接结束。

continue:继续,当前循环体结束执行,而继续执行下次循环体。

include和require

设置include_path的值

使用函数set_include_path()。

set_include_path('d:/php/test');然后直接require 'file.php',

注意:在设置时,后设置的会将前面设置的覆盖掉!

取得当前的include_path的值

利用函数:get_include_path()可以获得当前的include_path的值!

目录之间采用分号连接.

set_include_path('d:/php/test'.PATH_SEPARATOR.get_include_path());

 

PHP对代码的编译时已源文件为单位的,当前文件如果有语法错误,php会报错。不会执行代码编译处理。

 

require(require_once)和include(include_once)的区别

在载入文件失败时,对文件的依赖不同,触发的错误不一致!级别不同。

require(require_once):会触发一个 致命错误,导致脚本终止;

include(include_once):会触发一个 警告错误,脚本继续运行。

require(include)和require_once(include_once)的区别:

带once指的是加载一次。在执行加载时,带once的会先对当前文件是否已经加载的了该文件做一判断。

已经加载:不会再次加载

没有加载:执行加载!

使用尽量使用require即可。

控制脚本执行

终止脚本执行和延迟脚本执行。

die(),exit():终止脚本执行,一旦出现,脚本立即终止,结束所有执行。并且可以在结束前输出一段字符串。

sleep()延迟脚本执行,暂停一段时间,以秒为单位。最大执行周期为30秒,可以被配置,在php.ini文件中 max_execution_time = 30

 

如果在参数列表内,有部分参数存在默认值,但是部分不存在,则将有默认值的参数放在形参列表后边完成。

func_get_args():得到函数内的所有实参。

 

$GLOBALS:预定义变量

专门为用户数据超全局化的一个预定义变量。

不同于其他的超全局变量:

每个全局变量,自动地 与 $GLOBALS内的一个元素相对应。

增加一个全局变量,则自动在$GLOBALS内增加一个同名元素!反之亦然!

$v1 = 10;

var_dump($GLOBALS['v1']);

 

$GLOBALS['v2'] = 20;

var_dump($GLOBALS['V2']);

global的作用是

声明一个局部变量,并将其初始化为同名全局变量的一个引用!

 

匿名函数的作用

典型的匿名函数可以作为临时函数来使用。例如,有些内部函数,需要调用某个函数来完成操作!像:array_map():返回数组 = array_map('函数',数组); 对某个数组内的所有元素利用提供的函数做操作!

凡是参数需要 callback(callable)地方,都是通过传递匿名函数完成!

PHP数组指针问题

指针函数

php有:获得指针指向的数组元素的键和值的能力!利用函数:

current()获得当前元素的值

key()获得当前元素的键。如果指针已经非法,返回NULL。用来判断是否存在元素了

还应该有:将指针移动的能力!

next():可以完成指针的移动!

 

数组函数:

range()可以得到某个范围内的元素数组。

array_merge('$arr1','$arr2',...)数组合并,合并多个。

下标重复会怎么样?

数值索引:完全重新索引!

字符下标:后出现的元素值会覆盖前面的元素值!

array_rand(数组,个数)随机地从数组内取得元素,取得是下标!如果多个,返回随机下标的集合!结果是被排序之后的,从小到大!

shuffle(&$arr)打乱数组内元素的顺序。注意,参数为引用传递!会打乱原数组。

键值操作:

array_keys()取得所有的键。

array_values()取得所有的值。

in_array()是否存在某个值。

array_key_exists()某个键是否存在。

array_combine('键数组','值数组') 利用两个数组合并成一个数组,其中一个作为键,另一个作为值!

array_fill('第一个索引值','数量','值')填充数组。

数组 = array_fill(起始下标,填充的元素个数,填充的值);

array_chunk()拆分数组,原则是子数组内的元素个数!

array_intersect($arr1, $arr2)计算两个数组的交集,找到在$arr1中存在,并也在$arr2中存在的元素,数据是出现在第一个参数中的。

array_diff($arr1, $arr2)计算两个数组的差集。找到在arr1中存在,但是在arr2中不存在的元素!

数组模拟栈和队列:

桟 和 队列 都是典型数据结构,都是 list 列表的一种。

入栈:array_push(),在数组的尾端将数据压入数组。

出栈:array_pop(),在栈顶输出元素。

array_push()与array_pop()会重新索引,保证所有的元素都是由0开始的逐一递增。

入队:array_push(),在数组的尾端将数据压入数组。

出队:array_shift(),在数组的顶端,将数据取出。

array_unshift(),可以将数据由数组的顶端压入数组。

数组排序函数

排序函数都是引用传值!

r:reverse,反转 。a:association,关联。u:user,用户自定义。

sort('数组')          按照值,升序,不保持键值关联。

rsort('数组'):        按照值,降序,不保持键值关联。

asort('数组')       按照值,升序,保持键值关联。

arsort('数组'):      按照值,降序,保持键值关联。

ksort('数组')       按照键,升序,保持键值关联。

krsort('数组')      按照键,降序,保持键值关联。

natsort('数组'):   自然数排序,可以利用计算出来的自然数,对数据进行排序!

usort('数组'):       自定义排序,用户自定义的元素之间的大小关系。用户提供一个比较两个元素大小的函数,并可以告知php元素的大小关系。用户所定义的函数,负责告知usort()两个元素之间的大小关系,而usort得到关系之后,负责完成排序!利用返回值告知!

升序的返回效果:

返回负数,表示第一个元素小;

返回正数,表示第一个元素大;

返回0,表示相等。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/916827.htmlTechArticlePHP基础语法随记,PHP基础语法 PHP常量: 预定义常量: PHP自身也定义了大量的预定义常量,可以使用get_defined_constants()来查看,比较常用的预...
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP:服务器端脚本语言的简介PHP:服务器端脚本语言的简介Apr 16, 2025 am 12:18 AM

PHP是一种服务器端脚本语言,用于动态网页开发和服务器端应用程序。1.PHP是一种解释型语言,无需编译,适合快速开发。2.PHP代码嵌入HTML中,易于网页开发。3.PHP处理服务器端逻辑,生成HTML输出,支持用户交互和数据处理。4.PHP可与数据库交互,处理表单提交,执行服务器端任务。

PHP和网络:探索其长期影响PHP和网络:探索其长期影响Apr 16, 2025 am 12:17 AM

PHP在过去几十年中塑造了网络,并将继续在Web开发中扮演重要角色。1)PHP起源于1994年,因其易用性和与MySQL的无缝集成成为开发者首选。2)其核心功能包括生成动态内容和与数据库的集成,使得网站能够实时更新和个性化展示。3)PHP的广泛应用和生态系统推动了其长期影响,但也面临版本更新和安全性挑战。4)近年来的性能改进,如PHP7的发布,使其能与现代语言竞争。5)未来,PHP需应对容器化、微服务等新挑战,但其灵活性和活跃社区使其具备适应能力。

为什么要使用PHP?解释的优点和好处为什么要使用PHP?解释的优点和好处Apr 16, 2025 am 12:16 AM

PHP的核心优势包括易于学习、强大的web开发支持、丰富的库和框架、高性能和可扩展性、跨平台兼容性以及成本效益高。1)易于学习和使用,适合初学者;2)与web服务器集成好,支持多种数据库;3)拥有如Laravel等强大框架;4)通过优化可实现高性能;5)支持多种操作系统;6)开源,降低开发成本。

揭穿神话:PHP真的是一种死语吗?揭穿神话:PHP真的是一种死语吗?Apr 16, 2025 am 12:15 AM

PHP没有死。1)PHP社区积极解决性能和安全问题,PHP7.x提升了性能。2)PHP适合现代Web开发,广泛用于大型网站。3)PHP易学且服务器表现出色,但类型系统不如静态语言严格。4)PHP在内容管理和电商领域仍重要,生态系统不断进化。5)通过OPcache和APC等优化性能,使用OOP和设计模式提升代码质量。

PHP与Python辩论:哪个更好?PHP与Python辩论:哪个更好?Apr 16, 2025 am 12:03 AM

PHP和Python各有优劣,选择取决于项目需求。1)PHP适合Web开发,易学,社区资源丰富,但语法不够现代,性能和安全性需注意。2)Python适用于数据科学和机器学习,语法简洁,易学,但执行速度和内存管理有瓶颈。

PHP的目的:构建动态网站PHP的目的:构建动态网站Apr 15, 2025 am 12:18 AM

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP:处理数据库和服务器端逻辑PHP:处理数据库和服务器端逻辑Apr 15, 2025 am 12:15 AM

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

您如何防止PHP中的SQL注入? (准备的陈述,PDO)您如何防止PHP中的SQL注入? (准备的陈述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具