首页 > 开发 > php > 正文

自学道路中的PHP问与答

2016-07-06 16:13:09  来源:慕课网

  自学道路上的一些自问自答。
子类怎样调用父类的构造函数?   •在子类中如果定义了construct则不会调用父类的construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。
1

class Car {
     function __construct() {
         print "父类构造函数被调用\n";
     }
  }
  class Truck extends Car {
     function __construct() {
         print "子类构造函数被调用\n";
         parent::__construct();
    }
 }
 $car = new Truck();

  TP 框架U方法的用途
TP 框架U方法的用途   U方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址,格式为:
U('地址','参数','伪静态','是否跳转','显示域名');
在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。
在模板中的调用格式需要采用 {:U('地址', '参数'…)} 的方式

<a href='{:U('User/info', array( 'uid' => $vo['uid'] ))}'>{$vo.name}</a>

U('Blog/cate',array('cate_id'=>1,'status'=>1))
U('Blog/cate','cate_id=1&status=1')
U('Blog/cate?cate_id=1&status=1')

json_encode中文UNICODE转码问题   把汉字先urlencode然后再使用json_encode,json_encode之后再次使用urldecode来解码,这样编码出来的json数组中的汉字就不会出现unicode编码了。
  

$array = array(
'test'=>urlencode("我是测试")
);
$array = json_encode($array);
echo urldecode($array);
//{"test":"我是测试"}


$_POST接收表单数据,    

if ($_POST['feedbackInfo']) {//submit按钮的name属性值,即触发该按钮时执行。
        $name = $_POST['userName'];//反馈表页面用户名 的name属性值
        $info = $_POST['info'];//反馈表页面反馈信息的name属性值
    }
什么是多态
  字面意思,多种形态
//一个动作由不同的人去执行,而产生不同的效果或者结果,即为多态
  园丁          剪          修理花草
理发师       剪          理发
总裁           剪         裁员
  //一个人通过不同的状态去执行同一动作,形成不同的结果,也可以称作多态


  人             笔记本         运行           win7开机了
人             台式机         运行           xp开机了

<?php 
//创建一个接口,来规范运行的方法
interface Computer{
    public function version();//这个方法表示采用什么电脑
    public function work();//这台电脑是怎么运行的

}

//创建一个笔记本类来实现接口
class NoteComputer implements Computer{
    public function version(){
        echo "笔记本";
    }
    public function work(){
        echo "可以便携式运行win7";
    }
}

//穿件一个台式机的类来实现接口
class DesktopComputer implements Computer{
    public function version(){
        echo "台式机";
    }
    public function work(){
        echo "在工作站运行的XP";
    }
}

//创建一个用户
class Person{
    //创建一个方法来接收电脑(笔记本或者台式)
    //怎么接收,将他们的对象传进来就ok了
    public function run($type){
        $type->version();
        $type->work();
    }
}

//多态的原理就是类都写好了,不要去修改他,只要在类外的调用参数的更改
//而最后的结果也会得到更改,那么这个就是多态

//有一个接口,两个类,
$notecomputer = new NoteComputer();
$desktopcomputer = new DesktopComputer();
$person = new Person();
$person->run($notecomputer);
$person->run($desktopcomputer);