类里的常量属性
时间:2023-3-1 21:57 作者:wen 分类: PHP
<?php
class Person{
const birthday='2016-10-31';
static public $name = '小明';
public function getData(){
return self::birthday;
}
public function setData(){
return self::$name;
}
}
//方法一直接
echo Person::birthday;//$class='Person' $class:: birthday;
echo '<hr />';
//方法二间接
$obj = new Person();echo $obj->getData();//$obj::birthday
echo '<hr />';
echo Person::$name;
echo '<hr />';
$obj = new Person();echo $obj->setData();
echo '<hr />';
?>
<?php
//static 静态;
//静态成员:类的成员不属于对象;
//静态方法不能调用非静态方法;
?>
<?php
//魔术方法
/*
__autoload() 当前实例化一个没有的类时,会自动调用
__get()
当获取一个没有定义的属性,会自动调用
__call()
当需要请求一个没有的函数是,自动调用
__isset()
function __autoload($className){
require $className.'.php';
}
*/
class Per{
public $arr=array('name'=>'小明');
public function __get($name){
//echo $name;
return $this->arr[$name];
}
public function __set($name,$value){
//echo $name.$value;
$this->arr[$name]=$value;
}
// public function __call($fun,$param){
// die('no this '.$fun);
// }
// public function test(){
// }
// public function __isset($name){
// die('ne this '.$name);
//}
}
$obj = new Per();
//echo $obj->name;
$obj->age=12;
var_dump($obj->arr);
//$obj->wen();
?>
<hr/>
<?php
//对象的传递方式:默认按引用,按值传递 clone
class pers{
public $name='小明';
}
$obj1=new Pers();
$obj2=$obj1;
$obj2->name='小强';
echo $obj1->name;
?>
<hr/>
<?php
/*
instanceof用来检测对象是否由某类及某类的子类所实例化
*/
class Perso{
public function __construct(){
echo 1;
}
static function getData(){
echo 3;
}
public function setData(){
echo 4;
}
}
class female extends Perso{
public function __construct(){
parent::__construct();
parent::getData();
parent::setData();
echo 2;
}
}
$obj3=new female();
if($obj3 instanceof female){
echo 1;
}else{
echo 2;
}
?>
<?php
//面向对象辅助函数
//bool class_exists(class_name)
//检测点前脚本是否存在指定的类
//
//string get_class()通过对象获取类名
//
//array get_class_methods(class_name) 通过类名获取类里的方法
//string get_parent_class() 通过对象或子类获取父类名称
//bool interface_exists(interface_name) 检测点前脚本是否存在指定接口
//bool method_exists(object, method_name) 检查类的方法是否存在
echo (class_exists('Person'))?'存在':'不存在';
echo get_class($obj);
$arr4=get_class_methods('Person');
print_r($arr4);
echo get_parent_class('female');
/*
url编码,好处便于传输特殊字符如#|&|+等
urlencode()
urldecode()
base64_encode(data)
base64_decode(data)
*/
?>
标签: PHP基础