PHP引用全局作用域中可用的全部变量是,php全局变量之学习笔记

今天我们参考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的工作原理整理的很好,分析很透彻。希望以后积极点,继续努力

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值