php总结_1
2024-10-20 21:03:02
?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/
最新文章
- Ping!
- 代码重构-2 简单不变的 if else 用字典代替
- aggregations 详解1(概述)
- Android 连接tomcat模拟登陆账号
- (转)在javascript中关于submit和button提交表单区别
- uva10829 L-Gap Substrings
- C数组的相关知识
- 学会WCF之试错法——数据传输
- Confluence 6 推荐的更新通知设置和禁用
- jquery easyui datagrid 将值作为img显示图片时报404 undefined
- Sqluldr2 libclntsh.so报错处理
- 2019.02.17 spoj Query on a tree V(链分治)
- 细谈 Web Api 图片上传,在使用 Task.ContinueWith 变量无法赋值问题的解决办法!
- java字符串的替换
- tac命令详解
- socket.io插件调用的demo
- ios 第3天
- careercup-扩展性和存储限制10.4
- 最新Altium_Designer_Beta_18.7.is AD18安装教程及破解说明
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (-)启动创建好的DBExpress工程时候报错了!
热门文章
- Neutron Messaging Callback System
- 常见SQL函数需要注意的细节
- invalid constant type: 18
- 普林斯顿算法(1.3)并查集(union-find算法)——本质就是一个数 下面的子树代表了连在一起的点
- 自定义EL函数、自定义JSTL标签
- JavaUtil_07_HttpUtil_使用Hutool 封装的 HttpUtil
- MySQL--开发技巧(一)
- listen and translation exercise 49
- Debian for ARM
- Arc076_E Connected?