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 \r\n";
$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参数是一个数组,包含着要传递给方法的参数,
php核心技术与最佳实践(笔记一)的更多相关文章
- PHP核心技术与最佳实践--笔记
<?php error_reporting(E_ALL); /* php 5.3引入 延迟静态绑定 */ /* php5.4引入trait,用来实现多层继承 trait Hello{} trai ...
- PHP核心技术与最佳实践——全局浏览
难得买到并喜欢一本好书,‘PHP核心技术与最佳实践’. 几天时间,先看了个大概,总结一下整体是什么样子的,怎么看怎么学. 1.总共14章: 2.第1.2章讲PHP的OOP: 其中第一章侧重于PHP的O ...
- 温习《PHP 核心技术与最佳实践》这本书
再次看这本书,顺手提炼了一下大致目录,以便后续看见目录就知道大概讲的些什么内容 PHP 核心技术与最佳实践 1.面向对象思想的核心概念 1.1 面向对象的『形』与『本』 1.2 魔术方法的应用 1.2 ...
- web前端开发最佳实践笔记
一.文章开篇 由于最近也比较忙,一方面是忙着公司的事情,另外一方面也是忙着看书和学习,所以没有时间来和大家一起分享知识,现在好了,终于回归博客园的大家庭了,今天我打算来分享一下关于<web前端开 ...
- 【大数据和云计算技术社区】分库分表技术演进&最佳实践笔记
1.需求背景 移动互联网时代,海量的用户每天产生海量的数量,这些海量数据远不是一张表能Hold住的.比如 用户表:支付宝8亿,微信10亿.CITIC对公140万,对私8700万. 订单表:美团每天几千 ...
- Mysql索引最佳实践笔记0524
#mysql5.7 innodb默认存储引擎 一.关于索引二.最佳实践三.避坑实践 一.关于索引 1.索引的作用 -提高查询效率 -数据分组.排序 -避免回表查询 -优化聚集查询 -用于多表join关 ...
- 《深入理解Java 7核心技术与最佳实践》读书笔记(2) Java语言动态性引言
Java语言是一种静态类型的编程语言.静态类型的含义是指在编译时进行类型检查.Java源代码中的每个变量的类型都要显式地进行声明.所有变量.方法的参数和方法返回值的类型在程序运行之前就必须是已知的.J ...
- 《Java核心技术与最佳实践》读书笔记
第一章 Java7新语法 1.switch中使用字符串 2.增加二进制表示0b10101010:数字字面量允许直径使用下划线12_34_90 3.一个catch字句捕获多个异常,多个异常之间用|分隔 ...
- 《深入理解Java7核心技术与最佳实践》读书笔记(1.1)---Project Coin介绍
OpenJDK中的Coin项目(Project Coin)的目的就是为了收集对Java语言的语法进行增强的建议.在Coin项目开始之初,曾经广泛地向社区征求提议.在短短的一个月时间内就收到将近70条提 ...
随机推荐
- Sublime Text 3安装Package Control
Package Control官网:https://packagecontrol.io/installation#st3 ctrl + ` 或者 View > Show Console呼出控制台 ...
- 微信小程序之弹出操作菜单
<view class="List_count" bindtap="actioncnt"> <view class="img&quo ...
- 可编辑的div -> 编辑框
操作可编辑的div中,无可厚非,怎么获取当前光标位置,复制,粘贴等知识是必须要懂得,下边这个链接里面对其有详细的解释: 请点这里 想看详细的例子请点击这里
- 数据库索引的数据结构b+树
b+树的查找过程:如上图所示,如果要查找数据项29,那么首先会把磁盘块1由磁盘加载到内存,此时发生一次IO,在内存中用二分查找确定29在17和35之间,锁定磁盘块1的P2指针, ...
- HTML基础篇
由于一些原因,要换工作了,毫无准备,心情郁闷了几天.但是还是更新了简历,准备复习面试.面 了3天.面试中问到了一些问题,想好好整理一下.越是大公司越看重基础.这几天遇到的面试题,有15到简答题,有两页 ...
- PostgreSQL模式(schema)介绍
一个PostgreSQL数据库集群包含一个或多个已命名数据库.用户和用户组在整个集群范围内是共享的,但是其它数据并不共享.任何与服务器连接的客户都只能访问那个在连接请求里声明的数据库. 注意: 集群中 ...
- Monggodb基础
MongoDB 查询文档使用 find() 方法. find() 方法以非结构化的方式来显示所有文档. 语法 MongoDB 查询数据的语法格式如下: db.collection.find(query ...
- Spring Boot 初识
发展到今天,spring已经是一个大家族了,如果想要使用其中的两到三个组件就会有多复杂的配置,有时候还有会版本不一致的错误,让人很无奈.于是,就有了spring Boot,spring Boot ...
- MVC 执行顺序
MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下: 1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteC ...
- js:苹果手机页面返回,数据不刷新问题
$(function () { var isPageHide = false; window.addEventListener('pageshow', function () { ...