php入门第二弹(未完)
前言:开始复习php了,之前学的内容忘差不多了,所以就补一些我忘了的内容,不会全补。
1 php 超级全局变量
php中预定了几个超级变量,这些变量在一个脚本的全部作用域中都可用,不需要特意说明,就可以在函数以及类
中使用
1.1 $GLOBALS
$GLOBALS 是php中的有一个超级全局变量组,在一个php脚本的全部作用域中都可以访问。
具体使用如下:
<?php
$a = 1;
echo $GLOBALS["a"];
执行结果为1
同个此方式,可以调用不同变量的值。另外再提以下php的作用域问题,php的作用域和javascript类似,都是不
以if 或for形成块级作用域的
1.2 $_SERVER
$_SERVER是一个包含了注入头信息(header) 路径(path) 以及脚本位置(script locations)等信息的数组,这个数组
中的项目由web服务器创建,但不能保证每个服务器都提供全部项目。
下面列出所有$_SERVER的重要元素
1 $_SERVER['PHP_SELF']:当前执行脚本的文件名,比如如果在http://example.com/test.php/foo.bar
中执
行,将得到/test.php/foo.bar
利用该
**2 $_SERVER['GATEWAY_INTERFACE'] **
可以得到当前服务器使用的cgi规范的版本,例如cgi/1.1
3 $_SERVER['SERVER_ADDR']
可以得到当前运行脚本的服务器ip地址
4 $_SERVER['SERVER_NAME']
当前运行的脚本所在服务器的ip地址。
5 $_SERVER['SERVER_SOFTWARE']
服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24)
6 $_SERVER['SERVER_PROTOCOL']
请求页面通信协议的名称和版本
还有很多其他元素,就不一一阐述了,如果需要可以去菜鸟教程查询,剩下的一些元素的作用我在此统一阐述一下
7 获取请求方法
8 获取开始的时间戳
9 查询字符串
10 获取请求头中的accept项内容
11 获得当前请求头中的host内容
1.3 $_POST
该变量用于收集html表单提交的数据,
具体方法如下:
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_POST['fname'];
echo $name;
?>
</body>
</html>
有几个点需要解释下
在action属性嵌套php内容,然后利用echo把本文件的地址输入给action属性,使得表单提交的数据发送给本页面
,然后再下面获得post传递的值,并输出
如果将数据传递给其他页面的php文件,想要重定向会来,可以使用: header("Location: text.html");
来实现重定向
1.4 $_GET
PHP的$_GET被广泛使用于收集表单数据,可以在表单中method属性给与get方法,也可也直接构造url通过get方
法传递数据。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<a href="a.php?subject=PHP">链接</a>
<?php
echo $_GET['subject'];
?>
</body>
</html>
通过此方式利用get方法在查询字符串时传递数据
1.5 $_REQUEST
$_REQUEST 可以获得无论是get方法传递,还是post方法传递的数据,具体使用方式只需要
$_POST["具体的变量名"]
即可获得传递的数据
2 类和对象
由于太久没有使用了,所以忘差不多了,现在重新整理一下,但只会整理存在遗忘的部分。
2.1 构造函数
构造函数用于对象初始化,再创建对象时,构造函数就会被调用,构造函数具体使用如下:
<?php
class abs
{
var $a;
function __construct($a)
{
$this->a = $a;
}
}
$a = new abs(1);
echo $a->a;
2.2析构函数
析构函数是当某个对象成为垃圾或者当对象被显式销毁时执行的方法,没有任何变量引用这个对象时,该对象就会
成为垃圾然后被销毁
直白点的说,当我们人为销毁创建的对象时,或者原来的对象被覆盖时,或php程序结束时对原有对象内存的释放
会执行析构函数。
实例如下:
<?php
class abs
{
function __destruct()
{
echo 1;
}
}
$a = new abs;
$a=null ;//原有的对象被覆盖,触发析构函数
或者
<?php
class abs
{
function __destruct()
{
echo 1;
}
}
$a = new abs;
原有的对象在php程序执行结束后被销毁,执行析构函数。
2.3 类的修饰符
存在public
private
protected
三种修饰符
public 修饰的方法和属性在类的内部和外部都可以访问,private修饰的属性和方法只能在类的内部访问,
protected修饰的方法和属性只能在类内部和继承的子类中访问,php不存在友元类和友元函数
注意:虽然在平时使用变量时不需要声明,但对于类的内部属性需要使用var
进行声明
2.4 静态方法与静态属性
静态属性只能在类的内部调用和修改,静态方法可以在类的内部调用也可也在类的外部调用,但调用时需要使用self 变量
2.5 继承
在未定义构造函数的子类中,会默认继承父类的构造函数,parent只能调用父类的成员方法,this既可以调用父类
的方法也可以调用父类的属性,子类不能调用父类的private 方法和属性
2.6 fopen fwrite fclose fread 的使用
fopen 函数用于打开文件,可以用于读取或者写入文件,它返回一个文件指针, 用于后续的操作
具体的使用方式为
$file=fopen("example.txt","参数")
对于最后传入的参数,有这几种选择
r :只读,不能进行修改 如果文件不存在,会返回false
w : 写入,打开文件用于写入,如果文件不存在,则创建该文件,如果文件存在,会截断文件,即清
空文件内容
a 追加,打开文件用于写入,如果文件不存在,则创建该文件,如果文件存在,会在文件的末尾进行补
充
x: 独占写入,如果文件存在,会直接返回false,如果文件不存在,会创建文件并进行写入。
fread 具体的用处是对打开的文件进行读取,具体的操作如下
$file=fopen("example.txt","参数");
echo fread($file,filesize("example.txt");
通过该操作可以对打开的文件内容进行读取输出,fread第二个参数是读取的文件的长度,直接获取文
件全部长度或者按需求输入即可
使用fwrite 对用fopen 打开的文件进行写入操作,具体的操作
fwrite($file,"你要写入的内容");
在写入完成后别忘了关闭文件,以确定保存成功
fclose($file);
这样一个完整打开文件,读入,更改,关闭过程就完成了。