今天我们参考php官方对php全局变量介绍来理解一下php全局变量一些用法与自己对它的一些思考吧,现在分享出来希望对各位同学有帮助。
一、核心要点思考:
1. 哪些全局变量是过期的及如何处理?
如:unset($GLOBALS, $_ENV, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS);
2.哪些全局变量有命令行下是无效的?
3. htmlspecialchars()用法, 为什么要用它?
4. $_REQUEST和 $_GET, $_POST,$_COOKIE的联系与区别?
5. 为什么上传了文件但$_FILES变量不存在或为空?
6. 全局变量的作用域?
7. 我想取得用户的IP和浏览器的user_agent信息, 如何取?
8. 我没有用浏览器, 我是 socket编程? 如何保持session?
9. 如何取得headers信息?
php九大全局预定义数组
超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量
$GLOBALS — 引用全局作用域中可用的全部变量
$_SERVER — 服务器和执行环境信息
$_GET — HTTP GET 变量
$_POST — HTTP POST 变量
$_FILES — HTTP 文件上传变量
$_REQUEST — HTTP Request 变量
$_SESSION — Session 变量
$_ENV — 环境变量
$_COOKIE — HTTP Cookies
$php_errormsg — 前一个错误信息
$HTTP_RAW_POST_DATA — 原生POST数据
$http_response_header — HTTP 响应头
$argc — 传递给脚本的参数数目
$argv — 传递给脚本的参数数组
二、主要问题
====================================
PHP基础篇总结题目:
1>. var_dump(0=="ads");请问该条语句结果是怎样的?为什么?
答:此语句结果为true;
此表达式中右侧的字符串默认强制转换为int数据0,与左侧数据相同,所以输出true,如果是“===”,则会输出false,这是因为他们类型不同,值也不同,在这里不会强制转换。
点评:这个真不好说, 测试一下吧! var_dump()打印表达式的结果! 这个实际考的是表达式运算。
2>.异常可以被克隆吗?
答:不可以。
3>.PHP中 Traits有什么特性?
答:Traits (横向重用/多重继承)是一组结构很像类的方法,但它但不能实例化,它可以让开发人员在不同的类中轻松地重用方法;
Traits的最佳应用是多类之间可以共享相同的函数;
静态变量可以被 trait 的方法引用,但不能被 trait 定义。但是 trait 能够为使用的类定义静态方法;
如果 trait 定义了一个属性,那类将不能定义同样名称的属性,否则会产生一个错误;
总结: 提的问题好,回答的也挺好
=====================================
1、有哪些超全局变量?答:超全局变量:$GLOBALS、$_SERVER、$_GET、$_POST、$_FILES、$_COOKIE、$_SESSION、$_REQUEST、$_ENV
2、浏览器把cookie给禁用了,$_SESSION还能用吗? 答:不能用了
点评: 答错了, 能用! apache有自动的功能将session_id放在get参数。
3、$php_errormsg在什么时候都可用吗?答:不是,这个变量只在错误发生的作用域内可用,并且要求track_errors配置项是开启的(默认是关闭的)。
总结: 很积极,回答能够在丰满一点比较好
========================================
有个人性化的面试问题
写30个php字符串函数。
例:
trim() 去掉字符串中的空格
chop() 从右向左,删除指定字符 ,参数 rtrim(string,find);
rtrim() 从右向左,删除指定字符 ,参数 rtrim(string,find);
chr() 返回字符的 asc2 码
var_dump() 打印一个值,可以是任何形式,并返回值的属性
print() 打印数组或字符串
print_r() 把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示
chunk_split() 把字符串分割为一连串更小的部分
implode() 把数组元素组合为一个字符串
join() 把数组元素组合为一个字符串
explode() 把字符串分割成数组
md5() 返回一个md5值,不可逆
strlen() 获取一个字符串的长度
str_replace 替换字符串中的一些字符
mb_substr mb扩展的截取字符串函数,格式:mb_substr(string,start_Num,end_Num,'utf-8')
str_split 将一个字符串按照字符间距分割为一个数组
strpos 查找并返回首个匹配项的位置
strtr 转换字符串中特定的字符
substr 对字符串进行截取
substr_count 计算字符串中某字符段的出现次数
substr_replace 对字符串中的部分字符进行替换
wordwrap 函数按照指定长度对字符串进行折行处理
addcslashes() 在指定的字符前添加反斜杠
strtolower() 把字符串转换为小写
strtoupper() 把字符串转换为大写
strrev() 反转字符串
strripos() 查找字符串在另一字符串中最后出现的位置(大小写不敏感)
strrpos() 查找字符串在另一字符串中最后出现的位置(大小写敏感)
strspn() 返回在字符串中包含的特定字符的数目
ucwords() 把字符串中每个单词的首字符转换为大写
str_repeat() 把字符串重复指定的次数
...
=======================================
1、命名空间必须是程序脚本的第一条语句吗?
答案:yes
2、如何取消引用?
答案:unset();
3、如果一个类,它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象类吗?继承一个抽象类的时候,子类必须定义父类中的所有抽象方法吗?
答案:如果一个类中有抽象方法,类必须定义为抽象类,继承一个抽象类时,子类必须定义父类中的所有抽象方法。
========================================
1.如何得到文件的绝对路径
使用realpath() 函数,返回绝对路径名。若失败,则返回 false,比如说文件不存在。
echo realpath("test.txt");
输出:
C:wwwtestwebtest.txt
2.session的工作原理
session保存在服务端,但会以cookie的形式保存在客户端一个sessionid,如果禁用cookie,就需要用get方法的URL重写的机制或使用POST方法提交隐藏表单的形式来实现。
点评: 是这个原理, 但一般有web服务器会自动完成这个功能, 不需要在程序中添加。
3.public static声明的函数是静态方法吗?
public static声明的函数是静态方法,可以直接在类外用,类名::函数名的方法调用 不用采用NEW声明的方式
注意:函数内不能有动态内容 如$this->之类的
一般来说 需要频繁执行的内容 用STATIC声明
总结: session的工作原理整理的很好,分析很透彻。希望以后积极点,继续努力

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。3.适用于日志记录和计算器等场景,提高代码灵活性和可读性。

Fibers在PHP8.1中引入,提升了并发处理能力。1)Fibers是一种轻量级的并发模型,类似于协程。2)它们允许开发者手动控制任务的执行流,适合处理I/O密集型任务。3)使用Fibers可以编写更高效、响应性更强的代码。

PHP社区提供了丰富的资源和支持,帮助开发者成长。1)资源包括官方文档、教程、博客和开源项目如Laravel和Symfony。2)支持可以通过StackOverflow、Reddit和Slack频道获得。3)开发动态可以通过关注RFC了解。4)融入社区可以通过积极参与、贡献代码和学习分享来实现。

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能