php当前类名
‘壹’ php是否有函数,可以查看当前所有已经定义了的类
get_declared_classes
(PHP 4, PHP 5, PHP 7)
get_declared_classes — 返回由已定义类的名字所组成的数组
说明
get_declared_classes ( void ) : array
返回由当前脚本中已定义类的名字组成的数组。
返回值
返回由当前脚本中已定义类的名字组成的数组。
试试这个函数,看能返回不
‘贰’ PHP获取类名的一个问题(基类获取子类名)
从父类中获得子类名称,并不是不可能,
但是,这样做严重违背设计原则,属于设计错误。设计上不及格。。
应该检讨自己的需求和模型设计。
把具体应用情况说一说,我看看哪里做扭曲了
‘叁’ PHP-php怎样自动获取被调用的类名
(PHP 4, PHP 5)
get_class -- 返回对象的类名
说明
编辑
string get_class ( [object obj] )
返回对象实例 obj 所属类的名字。如果 obj 不是一个对象则返回 FALSE。
注: 在 PHP 扩展库中定义的类返回其原始定义的名字。在 PHP 4 中 get_class() 返回用户定义的类名的小写形式,但是在 PHP 5 中将返回类名定义时的名字,如同扩展库中的类名一样。
注: 自 PHP 5 起,如果在对象的方法中调用则 obj 为可选项。
<?php
classfoo{
functionfoo()
{
//implementssomelogic
}
functionname()
{
echo"Mynameis",get_class($this)," ";
}
}
//createanobject
$bar=newfoo();
//externalcall
echo"Itsnameis",get_class($bar)," ";
//internalcall
$bar->name();
?>
输出:
Its name is foo
My name is foo
‘肆’ php"直接用类名"和"new实例化"调用函数哪种方法效率更高
1.首先用法不同,__new__()用于创建实例,所以该方法是在实例创建之前被调用,它是类级别的方法,是个静态方法;
而 __init__() 用于初始化实例,所以该方法是在实例对象创建后被调用,它是实例级别的方法,用于设置对象属性的一些初始值。
由此可知,__new__()在__init__() 之前被调用。如果__new__() 创建的是当前类的实例,会自动调用__init__()函数,通过return调用的__new__()的参数cls来保证是当前类实例,如果是其他类的类名,那么创建返回的是其他类实例,就不会调用当前类的__init__()函数。
2.其次传入参数不同
__new__()至少有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别;
__init__()至少有一个参数self,就是这个__new__()返回的实例,__init__()在__new__()的基础上完成一些初始化的操作。
3.返回值不同
__new__()必须有返回值,返回实例对象;
__init__()不需要返回值。另外谈谈__new__()的作用,__new__()方法主要用于继承一些不可变的class,比如int, str, tuple, 提供一个自定义这些类的实例化过程的途径,一般通过重载__new__()方法来实现。代码如下
另外__new__()方法还可以用来实现单例模式,也就是使每次实例化时只返回同一个实例对象。
‘伍’ PHP中有关new的用法 一般new后面直接跟类名就可以了,我看到下面的一段代码为什么new 后面还跟带$符号变量
这是PHP的一个特性,函数,类、类方法都可以这样调用,解释器或自动找寻匹配的函数、类以及类方法调用。可以说是PHP比较灵活的一个特性。
运行下面的代码试试
<?php
$func = 'Hello';
$func();
function Hello() {
echo ('Hi there!');
}
?>
你贴出来的代码,是通过蹩脚的办法试图实现一个工厂方法,但是他这个代码设计是不太好的。
‘陆’ 请问高手们,__CLASS__ 在php中是代表什么意思呢
类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)在 PHP 4 中该值总是小写字母的。
‘柒’ php中::是什么意思
一、php中的::是调用类中的静态方法或者常量,属性的符号。PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。中文名:“超文本预处理器”是一种通用开源脚本语言。
二、PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。
三、PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多,PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。被广泛的运用。
例如
1、class aaa{
static function ar(){
}
function br(){}
}
2、使用非静态方法,要先创建实例
$obj = new aaa();
$obj -> br();
3、使用静态方法,无需创建实例,直接使用类名
aaa::ar();
(7)php当前类名扩展阅读:
1、PHP作为网络开发的强大语言之一,现在应用非常广泛,具有开放源代码,跨平台性强,开发快捷,效率高,面向对象,并且易于上手,专业专注等诸多优点。
2、各种PHP开发框架也让程序开发变的简单有效。
3、php框架对很多新手而言可能会觉得很难攀越,其实不然 ,只要知道一个框架的流程,明白原理了,基本类似框架都可以看懂,php框架真正的发展要从php5开始了,其实php4时代就有一些框架,但是因为框架并没有给大家带来多方便而觉得很复杂,速度没有纯php好,所以一直到了php5才有大的发展,php5的面向对象模型的修改对框架的发展起了很大的作用。
参考链接:PHP框架_网络
‘捌’ php中::是什么意思
PHP中的‘::’是一种内置的语法解析符号,中文名叫做“范围解析操作符”。:: 符号是用来帮助PHP中的语法结构“类”来实现对其成员的访问,通常我们只允许访问静态成员,具体代码如下:
① 类正常访问静态成员
class Heima{
//静态属性
public static $heima = '黑马';
//静态方法
public static function getHeima(){
//内部使用::
echo self::$heima; //self代表Heima类,同Heima::$heima
}
}
//外部访问
echo Heima::$heima; //访问静态属性,输出黑马
Heima::getHeima(); //访问静态方法,输出黑马
② 类访问普通方法(系统不建议,有风险,风险原因网页链接)
class Heima{
//普通方法
public function show(){
echo __CLASS__; //输出当前所属类类名
}
}
//正常应该是对象访问 $h = new Heima();$h->show();
//静态访问
Heima::show(); //系统会提示点什么,但是可以访问
//其实对象也可以利用::符号访问
$h = new Heima();
$h::show(); //效果也能达成,但是我们通常不建议这么使用
有关这类的基础知识,到黑马程序员论坛里面去看基础知识的视频吧。还有笔记。不然这么问,耽误自学时间
?
‘玖’ PHP 获取类名
在PHP中可以使用魔术方法 __CLASS__ 来获取类名
官方文档如下
如果想要得到不包含类的作用域的名称或类的作用域则需要下面两个函数
类包含作用域的名称
类作用域的名称
类不包含作用域的名称
‘拾’ php 怎么获取当前函数名称
使用__FUNCTION__
function test()
{
echo __FUNCTION__; // test
}
test();