?php
//检测变量类型,自己用的最多的是is_array()了,其他的几乎没用过
$array = array(1,9.9,'abc',array(1,2,3),true,null,);
v(is_bool(111)); //false
v(is_integer(9.9)); //false
v(is_double(9.9)); //true
v(is_string('abc')); //true
v(is_null('')); //false
v(is_null(null)); //true
v(is_array($array)); //true
function v($var){
var_dump($var);
}
?>

//类型提示

 <?php
class A{
public $name = 'a';
public function say(){
echo 'I am ',$this->name;
}
}
class B{
//类型提示
public function say(A $A){
return $A->say();
}
}
class C{}
$A = new A();
$B = new B();
$B->say($A); //I am a
$B->say(new C()); //报错 Argument 1 passed to B::say() must be an instance of A, instance of C given
?>

静态方法和属性
static关键字是在php 5才引入的。
静态方法是以类为作用域的函数,不能访问这个类中的普通属性,因为普通属性属于一个对象,但可访问静态属性。

 <?php
class A{
static public $msg='hello';
static function say(){
return self::$msg;
}
}
class B extends A{
static public $msg = 'world';
static function say(){
return parent::say().' '.self::$msg;
}
}
echo B::say(); //hello world
?>

常量:类访问,声明时无需$符,且值不可改

 <?php
//类访问,声明时无需$符,且值不可改
class A{
const PI = 3.14;
public function test(){
//self::PI = 3.15; //报错
return self::PI;
}
}
$a = new A();
echo $a::PI; //3.14
echo $a->test(); //3.14
?>

抽象类:PHP 5引入,不能被实例化,只定义或部分实现子类需要的方法。子类继承并实现其中的抽象方法,使抽象类具体化。

 <?php
abstract class A{
protected $name;
public function sing(){ }
abstract public function eat(); //以分号结束
}
//$a = new A(); //Cannot instantiate abstract class A class dog extends A{
// Class dog contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (A::eat)
}
?>

多数情况下,抽象类至少包含一个抽象方法,其中不能有具体内容。如下:

  abstrac function test();

抽象类的每个子类都必须实现抽象类中的所有抽象方法。新的实现方法的访问控制权限不能比抽象方法严格,参数个数也要一致。

原文博客地址:http://www.cnblogs.com/lltong/

php总结_1的更多相关文章

  1. 基于ThinkPHP3的微信平台开发_1

    微信公众平台是个好东西,具体的就不说了,我直接说技术>_< 下图为目录结构一览: 微信开发 - 文件目录结构 平台功能: 此次开发的平台是面向多微信公众号.微信多公众号主(下面简称号主)的 ...

  2. Java线程同步_1

    Java线程同步_1 synchronized 该同步机制的的核心是同步监视器,任何对象都可以作为同步监视器,代码执行结束,或者程序调用了同步监视器的wait方法会导致释放同步监视器 synchron ...

  3. C#后台代码编写图片地址Properties.Resources._1;

    if (i == 0)            {                pictureBox1.Image = Properties.Resources._1;                ...

  4. Java 内存模型_1

    title: Java 内存模型_1 date: 2017-01-15 17:11:02 tags: [JMM] categories: [Programming,Java] --- 概述 本文记录 ...

  5. java 蓝桥杯算法提高 _1区间k大数查询

    import java.util.Scanner; public class _1区间K大数查询 { public static void main(String[] args) { Scanner ...

  6. matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象

    一起来学matlab-matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matl ...

  7. lucene正向索引(续)——每次commit会形成一个新的段,段"_1"的域和词向量信息可能存在"_0.fdt"和"_0.fdx”中

    DocStoreOffset DocStoreSegment DocStoreIsCompoundFile 对于域(Stored Field)和词向量(Term Vector)的存储可以有不同的方式, ...

  8. 图文相关性 flickr数据实验结论_1

    初始化的选取很重要,random_uniform的效果远远好于random_normal, 是否有bias对效果影响很小 红色是random_uniform初始化,对比random_normal初始化 ...

  9. python常用文件处理函数_1

    1.range()函数 函数原型:range(start,end,scan) 参数含义:start:计数从start开始.默认是从0开始的,如range()等价于range(0,5)  end:计数到 ...

  10. Javascript初学篇章_1(概念/数据类型)

    Javascript是一门脚本语言,主要由浏览器来执行.它可以说是页面的灵魂,让页面活过来.与之前学的HTML5+CSS样式的不同之处就在于,JS能让静态网页成为一个动态网页,实现与用户的互动. Ja ...

随机推荐

  1. Spring Boot- 设置拦截打印日志

    import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspe ...

  2. Tomcat_异常_03_Tomcat日志(Logger)中文乱码

    一.异常现象 tomcat的日志中出现中文乱码 二.异常解决 2.1 修改catalina.sh文件 在 Tomcat安装目录下的bin目录中,修改catalina.sh文件,第229行. (1)修改 ...

  3. listen and translation exercise 49

    Huh? Appears to Be Universally Understood What's the most universal utterance in languages across th ...

  4. 集合划分状压dp

    给一个 $n$ 个点 $m$ 条边的无向图,每条边有 $p_i$ 的概率消失,求图连通的概率 $n \leq 9$ sol: 我们考虑一个 $dp$ $f_{(i,S)}$ 表示只考虑前 $i$ 条边 ...

  5. ACM学习历程—POJ3090 Visible Lattice Points(容斥原理 || 莫比乌斯)

    Description A lattice point (x, y) in the first quadrant (x and y are integers greater than or equal ...

  6. bzoj 3280: 小R的烦恼 费用流

    题目: Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要求小R帮助他一起解决一个难题. 问题是这样的,程设老师最近要进行一项 ...

  7. 洛谷【P1090】合并果子&&洛谷【P1334】瑞瑞的木板

    浅谈堆:https://www.cnblogs.com/AKMer/p/10284629.html 合并果子题目传送门:https://www.luogu.org/problemnew/show/P1 ...

  8. bzoj 4823 & 洛谷 P3756 老C的方块 —— 最小割

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4823 https://www.luogu.org/problemnew/show/P3756 ...

  9. HTML5对表单的约束验证

    在HTML5中增加了许多新的功能,用于表单提交到服务器之前对表单进行数据的验证(抢了javascript的饭碗),有了这些功能,即便是javascript没有加载进来还是可以确保基本的验证.换句话说, ...

  10. python 链表

    在C/C++中,通常采用“指针+结构体”来实现链表:而在Python中,则可以采用“引用+类”来实现链表. 节点类: class Node: def __init__(self, data): sel ...