-
实现一个网页输入,一个网页输出cookie的方法 在www根目录下创建cookie1.php 并写入:
<html> <head> </head> <body> <th>请输入用户名</th> <form method="POST" action="index.php"> <input type="text" name="user" value=""> <input type="password" name="password" value=""> <input type="submit" name="but" value="点击提交"> </form> </body> </html>
创建cookie2.php 并写入
<?php header('content-type:text/html;charset=utf-8'); echo "用户名为:".$_POST['user']."<br>"; echo "密码为:".$_POST['password']";
查看全部 -
<?php setcookie('test', time());//设置cookie属性 ob_start();//打开输出控制缓冲 print_r($_COOKIE); $content = ob_get_contents();//复制缓冲区内容到$content中 $content = str_replace(" ", ' ', $content); ob_clean();//清空(擦掉)输出缓冲区 header("content-type:text/html; charset=utf-8"); echo '当前的Cookie为:<br/>'; echo nl2br($content);//nl2br 在字符串所有新行之前插入 HTML 换行标记
查看全部 -
静态方法不需要实例化对象
查看全部 -
一般通过->来访问对象的属性或者方法,对于静态属性用::双冒号进行访问
查看全部 -
文档上的解释为:如果提供了参数 matches ,它将被填充为搜索结果。 $matches[0] 将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
文档上对于子组的说明为:子组通过圆括号分隔界定,并且它们可以嵌套。
如果正则表达式写为$p = '/\w+\s\w+/';,则没有子组,$matches[1]为空,而$matches[0]包含所匹配的文本;但是将表达式加上括号写为$p = '/(\w+\s\w+)/';,则有了子组,此时$matches[1]与$matches[0]相同。查看全部 -
用反斜杠转义是转义内容中的/,而不是作为分隔符的/;
当模式中包含较多的分隔符时,建议更换其他的字符作为分隔符,也可以使用preg_quote进行转义,如:
$p = 'http://'; $p='/'.reg_quote($p,'/').'/';
分隔符后面可以使用模式修饰符,模式修饰符包括:i ,m ,s , x使用i修饰符可以忽略大小写匹配;如:
$str = "Http://www.imooc.com/"; if (preg_match('/http/i', $str)) { echo '匹配成功'; }
查看全部 -
$a = '/字符串1/'; //胎儿(注意在单引号内要用分隔符围住,分隔符可以是非数字、非反斜线、非空格的任意字符。经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)) $b = '字符串2'; //孕妇 if(preg_match($a,$b)){ //如果$a被$b包含 echo '这两个是母子' }
查看全部 -
$b = clone $a;克隆即应用,两个变量指向不同的存储空间;function __clone(){}方法的用法
https://www.imooc.com/video/3689
class Car { public $name = 'car'; public function __clone() { //如果想更改克隆后某一项的初始值可以采用此方法,无此方法则代表全盘克隆 $obj = new Car(); $obj->name = $this->name; } } $a = new Car(); $a->name = 'new car'; $b = clone $a; var_dump($b);
$str = serialize($a); //对象序列化成字符串 echo $str.'<br>'; $c = unserialize($str); //反序列化为对象
查看全部 -
代表性的代码
<?php class Car { public $speed = 10; //在这里使用重载实现speedDown方法 public function __call($name,$args){ if($name == "speedDown"){ $this->speed-=10; } } } $car = new Car(); $car->speedDown(); //调用不存在的speedDown方法 echo $car->speed;
查看全部 -
<?php header("content-type:text/html;charset=utf-8"); class Car { private $ary = array(); public function __set($key, $val) { $this->ary[$key] = $val; } public function __get($key) { if (isset($this->ary[$key])) { return $this->ary[$key]; } echo "没有下标为".$key."的值"; } public function __isset($key) { if (isset($this->ary[$key])) { return true; } return false; } public function __unset($key) { unset($this->ary[$key]); } } $car = new Car(); $car->__set(1,2); echo $car->__get(3);
查看全部 -
class 类名 extends 父类名 {} ,创建一个继承于父类的子类 。
<?php class Car { public $speed = 0; //汽车的起始速度是0 public function speedUp() { $this->speed += 10; return $this->speed; } } //定义继承于Car的Truck类 class Truck extends Car{ public function speedUp(){ $this->speed = Car::speedUp()+50;//此时speed为父类中的speed加上50,即speed = 60 } } $car = new Truck();//创建对象,赋值给$car $car->speedUp();//调用对象中的speedUp echo $car->speed;//输出$car中的speed,结果为60
比较有代表性的一段代码!
查看全部 -
被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。
类属性必须定义为公有、受保护、私有之一。为兼容PHP5以前的版本,如果采用 var 定义,则被视为公有。
类中的方法可以被定义为公有、私有或受保护。如果没有设置这些关键字,则该方法默认为公有。
查看全部 -
静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用。静态属性不允许对象使用->操作符调用。
静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。查看全部 -
PHP类和对象之构造函数和析构函数
PHP5可以在类中使用__construct()定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作。
class Car {function __construct(){ print "构造函数被调用\n"; } } $car = new Car(); //实例化的时候 会自动调用构造函数__construct,这里会输出一个字符串
在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。
class Car {function __construct(){ print "父类构造函数被调用\n"; } } class Truck extends Car{function __construct(){ print "子类构造函数被调用\n"; parent::__construct(); } } $car = new Truck();
同样,PHP5支持析构函数,使用__destruct()进行定义,析构函数指的是当某个对象的所有引用被删除,或者对象被显式的销毁时会执行的函数。
class Car {function __construct(){ print "构造函数被调用 \n"; } function __destruct(){ print "析构函数被调用 \n"; } } $car = new Car(); //实例化时会调用构造函数 echo '使用后,准备销毁car对象 \n'; unset($car); //销毁时会调用析构函数
当PHP代码执行完毕以后,会自动回收与销毁对象,因此一般情况下不需要显式的去销毁对象。
查看全部 -
(重要:调用类中的属性时,不能加$符号!!!)属性声明是由关键字 public,protected 或者 private 开头,后面跟一个普通的变量声明来组成。属性的变量可以设置初始化的默认值,默认值必须是常量。
访问控制的关键字代表的意义为:
public:公开的
protected:受保护的
private:私有的
默认都为public,外部可以访问。一般通过->对象操作符来访问对象的属性或者方法,对于静态属性则使用::双冒号进行访问。当在类成员方法内部调用的时候,可以使用$this伪变量调用当前对象的属性。
受保护的属性与私有属性不允许外部调用,在类的成员方法内部是可以调用的。查看全部
举报