面向对象的特征:
对象唯一性、分类性、继承性、多态性。
分类性:拥有相同数据结构(属性)和行为(操作)的对象被抽象成为一个类。任何类的划分都是主观的,用于解决实际应用的相关问题。
多态性:指相同的操作、函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一条消息将可以产生不同的结果,这种现象称为多态性。
在执行对象的方法时,PHP将自动定义一个$this的特殊变量。该变量表示对对象本身的引用。
构造函数: 若类中定义了构造函数,它将自动被调用。通常构造函数用于自动执行对象的初始化操作,如对象属性的初始化。
function __construct($name, $size){
//初始化代码
}
析构函数:她是在函数注销时所调用。通常PHP会在所有请求都结束时自动释放该对象占用的所有资源,所以析构函数显得不是特别重要。
function __destruct(){
}
类的实例化:用new创建对象时,自动调用构造函数,对对象赋值为null时自动调用其析构函数__destruct().脚本执行结束时也会自动调用其析构函数。
类常量:使用关键字const定义即可。类常量不属于任何类的实例,只属于类本身。(类中的常量是大小写敏感)
静态属性:使用关键字static实现定义。静态属性和类常量一样,不属于任何类实例,只属于类本身。
<?php
class myClass{
const PI = "3.1415926";
static $name = "Jack";
public function showName(){
return self::$name;
}
public function showPI(){
return self::PI;
}
}
echo myClass::PI;
echo myClass::$name;
?>
访问类常量和静态属性一样分为两种情况:一种是在类的内部访问、另一种是外部访问。
魔术方法:
1、字符串转换函数__toString()
2、字符串转换函数__clone()
备注:
1:在php中{$param}, 在大括号中放变量是为了告诉php这里面是参数。
$param = 100;
echo "{$param}hello";
结果:100hello
2:一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个Web站点所能设置的Cookie总数不能超过20个。
PHP交互:
采用POST方法传输的数据量大,可以达到2M;采用GET方法提交数据,收到URL长度影响,最多只能传输约1024k字节。
AJAX:
创建XMLHttpRequest
IE3.0、IE4.0、或5.0
xmlhttp_request = new ActiviteObject("Msxml2.XMLHTTP.3.0");
IE6.0
xmlhttp_request = new ActiviteObject("Msxml2.XMLHTTP");
IE7.0及以上
xmlhttp_request = new ActiviteObject("Microsoft.XMLHTTP");
Mozilla、Netscape、safari
xmlhttp_request = new XMLHttpRequest();
如果服务器响应的header不是text/xml,可以调用如下的其他方法修改该header。
xmlhttp_request = new XMLHttpRequest();
xmlhttp_request.overrideMimeType('text/xml');
SimpleXML:创建SimpleXML对象来直接操作XML。
1:创建SimpleXML
$xml = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<module>
<id>1</id>
<name>name</name>
<class>class</class>
</module>
EOF;
$simpleXML = simplexml_load_string($xml);
print_r($simpleXML );
2:直接读取对象的属性
<?php
$simpleXML = simplexml_load_string($xml);
echo "id:".$simpleXML->id;
echo " name:".$simpleXML->name;
echo " class:".$simpleXML->class;
结果:id:id name:name class:class.
3:循环读取XML文件
<?php $xml = <<<EOF <?xml version="1.0" encoding="utf-8"?> <modules> <module> <id>M1</id> <name>Module one</name> <class>M1_class</class> </module> <module> <id>M2</id> <name>Module two</name> <class>M2_class</class> </module> <module> <id>M3</id> <name>Module three</name> <class>M3_class</class> </module> </modules> EOF; $simpleXML = simplexml_load_string($xml); foreach($simpleXML->module as $module){ echo "id:".$module->id."<br>";
echo "name:".$module->name."<br>";
} 3:根据XML路径进行查询echo "class:".$module->class."<br>";
array xpath(string $path);
4:XML数据的存储
mixed asXML([string $filename])
动态创建XML文档:在PHP中,DOM扩展作为内核的一部分进行安装的,在脚本中可以直接使用。创建DOM对象默认调用其构造函数__construct(),
__construct([string $version[,string $encoding]])
例子:<?php $dom = new DOMDocument("1.0", "UTF-8");//创建DOM对象 $modules = $dom->createElement("modules");//创建元素节点 $dom->appendChild($modules);//将modules元素节点以根节点添加到dom对象中 $module = $dom->createElement("module"); $modules->appendChild($module); $id = $dom->createElement("id","M1"); $name = $dom->createElement("name","name1"); $name = $dom->createElement("class","class1"); $module->appendChild($id); $module->appendChild($name); $module->appendChild($class); $dom->save("1.xml");