zoukankan      html  css  js  c++  java
  • php核心技术与最佳实践(笔记一)

    1.1面向对象的型与本

    类是对象的抽象组织,对象是类的具体存在。

    1.1.1对象的形

    <?php
    class Person{
        public $name;
        public $gender;
        public function say(){
            echo $this->name,"is ",$this->gender;
        }
    }
    
    $student = new Person();
    $student->name='Tom';
    $student->gender='male';
    $student->say();

    1.1.2对象的本

    1.1.3对象与数组

    1.1.4对象与类

    1.2魔术方法的应用

    魔术方法是以两个下划线开头,具有特殊作用的一些方法

    __construct方法就是一个标准的魔术方法,称为构造方法,定义了这个方法后,每次创建对象时都会先调用此方法,适合在使用对象之前做一些初始化工作;

    如果构造函数定义了参数,则实例化对象必须传参,或者为参数定义默认值,否则会报错;

    class Family{
        public $people;
        public $location;
        public function __construct($p=null,$loc=''){
            $this->people = $p;
            $this->location = $loc;
        }
    }
    
    new Family;

    1.2.1  __set和__get方法

    <?php
    class Account{
        private $user = 1;
        private $pwd = 2;
    }
    $a = new Account;
    echo $a->user;

    以上代码会报一个不允许访问私有属性的错误

    <?php
    class Account{
        private $user = 1;
        private $pwd = 2;
    
        public function __set($name,$value){
            echo "Setting $name to $value 
    ";
            $this->$name = $value;
        }
    
        public function __get($name){
            if (!isset($this->$name)) {
                $this->$name='default value';
            }else{
                return $this->$name;
            }
        }
    }
    $a = new Account;
    echo $a->user;
    $a->user = 'haha';
    echo $a->user;

    增加__set和__get方法后代码能运行,php将这两个方法归类为重载,php的重载值动态的创建类的属性和方法。

    这两个方法在访问的属性不存在时会调用,如果属性存在,是不调用的。

    1.2.2  __call和__callStatic方法

    如何防止调用不存在的方法而出错?使用__call魔术方法重载;

    mixed __call(string $name,array $arguments)

    当调用一个不可访问的方法时,__call方法会被调用。其中$name参数是要调用的方法名,$arguments参数是一个数组,包含着要传递给方法的参数,

  • 相关阅读:
    AIMS 2013中的性能报告工具不能运行的解决办法
    读懂AIMS 2013中的性能分析报告
    在线研讨会网络视频讲座 方案设计利器Autodesk Infrastructure Modeler 2013
    Using New Profiling API to Analyze Performance of AIMS 2013
    Map 3D 2013 新功能和新API WebCast视频下载
    为Autodesk Infrastructure Map Server(AIMS) Mobile Viewer创建自定义控件
    ADN新开了云计算Cloud和移动计算Mobile相关技术的博客
    JavaScript修改css样式style
    文本编辑神器awk
    jquery 开发总结1
  • 原文地址:https://www.cnblogs.com/lgxtry/p/9492893.html
Copyright © 2011-2022 走看看