我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在 PHP 中获取类名

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在 PHP 中获取类名

本篇文章将讨论如何通过类名解析、PHP __CLASS__ 常量和 get_class() 方法获取 PHP 类名。你将了解其在类内外的类名解析中的用法。


在 PHP 中使用类名解析来获取类名

当你的代码中有命名空间时,你可以通过类名解析获得类名。结果是一个完全合格的类名 (FQCN)。

此功能在 PHP 中以 ClassName::class 的形式提供。当你的 PHP 中有命名空间时,它很有用。

在下面的代码示例中,通过 ClassName::class 的类名解析将返回关联类的类名:


<?php
    namespace YourNameSpace;

    // Define a class
    class HelloClassName {}

    // Get the class name from ::class
    echo HelloClassName::class;
?>

输出:


YourNameSpace\HelloClassName

如果你想在类方法中使用这个特性,你可以通过静态方法获取类名。你将把它写成 static::class

下一个代码示例展示了如何在类方法中获取类名。


<?php
    namespace YourNameSpace;

    // Define the class name
    class HelloClassName {
        
        public function getClassName() {
            return static::class;
        }
    }

    // Create a new object
    $hello_class_name = new HelloClassName();

    // Get the class name
    echo $hello_class_name->getClassName();
?>

输出:


YourNameSpace\HelloClassName

在 PHP 中使用 __CLASS__ 常量获取类名

__CLASS__ 常量是 PHP 预定义常量的一部分。你可以在类中使用它来获取类名。

以下代码将通过 __CLASS__ 常量获取类名。


<?php
    // Define the class
    class Hello {
    	// This function will return the
    	// class name
        function HelloName (){
            return __CLASS__;
        }
    }

	// Create a new object
    $hello_object= new Hello();

	// Get the class name
    echo $hello_object->HelloName();
?>

输出:


Hello

在 PHP 中使用 get_class() 函数获取类名

PHP 提供了一个 get_class() 函数。该函数将返回类名。你可以在过程和面向对象的编程中使用它。首先,我们来看看程序风格。

下一个代码块定义了一个具有单个函数的类。当参数是 this 关键字时,类中的函数将返回类名。

要获取类名,请从类中创建一个对象;然后,将对象的名称传递给 get_class()


<?php
    // Define a class
    class Hello {
        function class_name() {
            echo "The class name is: ", get_class($this);
        }
    }

    // Create a new object
    $new_hello_object = new Hello();

    // Get the class name
    $new_hello_object->class_name();

    // Also, you can get the class name
    // via an external call
    // echo get_class($new_hello_object);
?>

输出:


The class name is: Hello

首先,对于 OOP 风格,你可以从静态类返回 get_class() 函数。


<?php
    // Define a class
    class Hello {
        public static function class_name() {
            return get_class();
        }
    }

    // Get the class name
    $class_name = Hello::class_name();

    echo $class_name;
?>	

输出:


Hello

此方法有其局限性,因为当你扩展类时,扩展类将返回父类的名称,而不是扩展类。为了解决这个问题,你可以使用 get_call_class()

get_call class() 函数依赖于 Late Static Binding。使用此函数,PHP 将返回调用类的名称。它解决了扩展类返回其父类的名称而不是自己的名称的情况。


<?php

// Define a class
class Hello {

	// A static function that returns the
	// name of the class that calls it
	public static function called_class_name() {
		return get_called_class();
	}

	// This function will return the
	// defining class name
	public static function get_defining_class() {
		return get_class();
	}
}

class ExtendHello extends Hello {

}

$hello_class_name = Hello::called_class_name();
$extended_class_name = ExtendHello::called_class_name();
$extend_hello_parent_class = ExtendHello::get_defining_class();

echo "Hello class name: " . $hello_class_name . "\n";
echo "Extended Hello class name: " . $extended_class_name . "\n";
echo "Extended Hello parent class name: "  . $extend_hello_parent_class . "\n";
?>

输出:


Hello class name: Hello
Extended Hello class name: ExtendHello
Extended Hello parent class name: Hello

PHP 中使用反射类获取类名

反射类是在 PHP 中获取类名的简洁方法。你创建一个类;在这个类中,创建一个返回新反射类的函数。

Reflection 类的参数应该设置为 $this。之后,你可以通过反射类可用的 getShortName() 方法获取类名。


<?php
    // Define a class
    class Hello {
        // A function that returns the class
        // name via reflection
        public function HelloClassName() {
            return (new \ReflectionClass($this))->getShortName();
        }
    }

    // Create a new class name
    $hello_class_name = new Hello();

    // Get the class name
    echo $hello_class_name->HelloClassName();
?>

输出:


Hello

在 PHP 中在对象上使用 ::class 获取类名

::class 功能适用于 PHP 8 之前的类。从 PHP 开始,当你从类创建对象时,你可以使用 ::class 从创建的对象中获取类名。

你将在以下代码块中找到一个示例。


<?php
    namespace YourNameSpace;

    // define the class
    class HelloClassName {

    }

    // Create a new object
    $hello_class_name = new HelloClassName();

    // Get the class name from the object
    // via ::class
    echo $hello_class_name::class;
?>

输出:


YourNameSpace\HelloClassName

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在 PHP 中获取类名

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在 PHP 中获取类名

本篇文章将讨论如何通过类名解析、PHP __CLASS__ 常量和 get_class() 方法获取 PHP 类名。你将了解其在类内外的类名解析中的用法。在 PHP 中使用类名解析来获取类名当你的代码中有命名空间时,你可以通过类名解析获得类
在 PHP 中获取类名
2024-02-27

php怎么获取类中方法名

php获取类中方法名的两种方法:1、使用魔术常量“__FUNCTION__”,可以返回类中当前方法的名称。2、使用get_class_methods()函数,可以获取指定类中所有方法的名称,返回一个包含所有方法名的数组,语法“get_class_methods(类名)”或“get_class_methods(new 类名())”。本教程操作环境:windows7系统、PHP8.1版、DELL G3电
2022-06-14

php如何获取类中方法名

本篇内容主要讲解“php如何获取类中方法名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何获取类中方法名”吧!php获取类中方法名的两种方法:1、使用魔术常量“__FUNCTION__”
2023-07-02

如何在 PHP 中获取文件扩展名

在本文中,我们将介绍在 PHP 中获取文件扩展名的方法。使用 pathinfo() 函数使用 SplFileInfo结构和 getExtension’函数在 PHP 中使用 pathinfo() 函数获取文件扩展名我们将使用内置
如何在 PHP 中获取文件扩展名
2024-02-27

在 PHP 中获取时区

本文将介绍 PHP 中获取时区的方法。在 PHP 中获取时区在处理来自世界各地的用户访问和输入数据的大型 PHP 应用程序时,我们需要创建一个时区并为所有用户设置一个标准的日期和时间。这是为了根据用户的时区轻松转换日期和时间。我们可以使用
在 PHP 中获取时区
2024-02-27

在 PHP 中获取标头

HTTP 标头在 Web 服务器和浏览器之间传输数据以进行通信。每当我们在浏览器的地址栏中输入一个 URL 时,它就会向服务器发送一个 HTTP 请求;它包含一个标题。在 PHP 中使用 get_headers() 获取给定 URL 的标头
在 PHP 中获取标头
2024-02-27

php怎么获取当前的类名和方法名

获取方法:1、使用魔术常量“__CLASS__”,可获取当前的类名(包括该类的作用区域或命名空间);2、使用“__FUNCTION__”,可获取当前方法的名称;3、使用“__METHOD__”,可获取当前的方法名(包括类名)。
2014-08-05

php如何获取当前类的方法名

这篇文章主要讲解了“php如何获取当前类的方法名”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何获取当前类的方法名”吧!php获取当前类的方法名的方法是,使用魔术常量__METHOD
2023-06-20

Ruby中怎么获取当前类名

这期内容当中小编将会给大家带来有关Ruby中怎么获取当前类名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Ruby语言可以说是目前最为灵活敏捷的编程语言。它的应用方式比较特殊,可以给编程人员带来愉悦的编程
2023-06-17

在 PHP 中获取和读取数据

我们在开发 PHP 应用程序时会遇到不同的内容。有时,我们需要读取文件并从用户、其他来源和应用程序获取内容。在 PHP 和大多数编程语言中,我们可以使用不同的方式和过程来获取请求和读取内容。内置函数,如 file_get_content()
在 PHP 中获取和读取数据
2024-02-27

在 PHP 中获取 UTC 时间

本文介绍如何使用五种方法在 PHP 中获取 UTC。 这些方法将使用 date_default_timezone_set() 、gmdate() 、strtotime() 、date() 和 DateTime 对象。使用 gmdate()
在 PHP 中获取 UTC 时间
2024-02-27

在 PHP 中获取当前目录名称和路径

本文将介绍几种在 PHP 中获取当前工作目录名称的方法。在 PHP 中使用 getcwd() 函数获取当前目录名称getcwd() 函数给出当前工作目录。返回值是成功时的字符串。该函数不接受任何参数。如果失败,该函数将返回 false。让我
在 PHP 中获取当前目录名称和路径
2024-02-27

java中获取类名的几种方法

Java 中获取类名的方式主要有以下三种。getName()返回的是虚拟机里面的class的类名表现形式。getCanonicalName()返回的是更容易理解的类名表示。getSimpleName()返回的是类的简称。通过一个实例来看下它们主要的区别。结果:
java中获取类名的几种方法
2015-06-03

PHP中怎么获取表字段名

本篇文章给大家分享的是有关PHP中怎么获取表字段名,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP获取表字段名通过mysql_field_name()函数来实现,该函数的语
2023-06-17

php中如何只获取文件名

php中如何只获取文件名?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。php只获取文件名的方法:首先创建一个PHP示例文件;然后通过“basename($file_path
2023-06-15

PHP如何获取已知编码类型的别名

本文介绍了PHP如何获取已知编码类型的别名。mb_list_encodings()函数可用于返回一个数组,其中包含所有支持的编码类型及其别名。您可以指定一个编码类型以过滤结果,并获取特定编码类型的别名。返回的数组包含每个编码类型的编码和别名键值对。
PHP如何获取已知编码类型的别名
2024-04-02

怎样获取php数组中的键名

本篇内容主要讲解“怎样获取php数组中的键名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎样获取php数组中的键名”吧!array_keys函数-返回数组中所有的键名在PHP中可以通过arra
2023-06-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录