返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP 私有函数
  • 225
分享到

PHP 私有函数

2024-02-27 19:02:50 225人浏览 泡泡鱼
摘要

如果某些属性或方法在 PHP 中被声明为 private 可见性关键字,则只能在其类中访问它。Private 函数只能在定义它的类中访问,不能在类外访问。使用 private 函数的一个主要缺点是子类不能继

如果某些属性或方法在 PHP 中被声明为 private 可见性关键字,则只能在其类中访问它。

Private 函数只能在定义它的类中访问,不能在类外访问。

使用 private 函数的一个主要缺点是子类不能继承这些函数。private 功能应正确使用。

教程演示了 private 函数的用法。

示范 private 函数的使用

首先,我们将创建一个具有一个 private 和一个默认 public 方法的类。我们将调用 private 函数,然后退出类。

班上:

<?php
class test_private
{
    // Public constructor
    public function __construct() { }

    // Declaring a private method
    private function TestPrivate() {
    echo "Hello! this is private function declared in test_private class"; 
    }

    // Default is always public
    function test()
    {
        $this->TestPrivate();
    }
}
?>

在类外调用函数 TestPrivate()

<?php
$testclass = new test_private;
$testclass->TestPrivate(); // This will cause fatal error.
?>

输出:

PHP Fatal error: Uncaught Error: Call to private method test_private::TestPrivate() from context '' in /home/znhT6B/prog.php:22 Stack trace: #0 {main} thrown in /home/znhT6B/prog.php on line 22 

在类外调用函数 test()

$testclass = new test_private;
$testclass->test(); // this will run the private function because it is called inside the class

输出:

Hello! this is private function declared in test_private class

正如我们所看到的,当 private 函数仅在其类内部调用时才有效,在我们的代码中,我们创建了一个 public 函数测试来调用 private 函数,以便我们可以在类外部调用它。

演示在继承中使用 private 函数

不可能调用在子类中声明的 private 方法。私有方法只能在同一个类中调用。

参见示例:

<?php
class test_private2 extends test_private
{
    // This is default public
    function test2()
    {
        $this->TestPrivate(); 
    }
}
$testclass2 = new test_private2;
$testclass2->test2(); // this will generate the same error.
?>

Class test_private2 是第一个示例代码中给出的 test_private 类的子类。我们将类称为子类中的 private 函数。

输出:

Fatal error: Uncaught Error: Call to private method test_private::TestPrivate() from context 'test_private2' in C:\Apache24\htdocs\php private.php:25 Stack trace: #0 C:\Apache24\htdocs\php private.php(30): test_private2->test2() #1 {main} thrown in C:\Apache24\htdocs\php private.php on line 25

如果我们通过在子类中创建一个具有相同名称的新函数来覆盖 private 函数会怎样?答案是一旦声明了 private 函数,就不能在子类中覆盖它。

<?php
class Cars 
{
    public function test() {
        $this->test_public();
        $this->test_private();
    }
    public function test_public() {
        echo "This is public function from Cars class.";
		echo "<br>";
    }   
    private function test_private() {
        echo "This is private function from Cars class.";
		echo "<br>";
    }
}

class Bikes extends Cars 
{
    public function test_public() {
        echo "This is public function from Bikes class.";
		echo "<br>";
    }   
    private function test_private() {
        echo "This is private function from Bikes class.";
		echo "<br>";
    }
}
$mybike = new Bikes();
$mybike->test();
?>

上面的代码试图覆盖子类中的 privatepublic 函数,但只有 public 函数将被覆盖。

输出:

This is public function from Bikes class.
This is private function from Cars class.

正如我们从输出中看到的,私有函数没有被子类覆盖。

--结束END--

本文标题: PHP 私有函数

本文链接: https://lsjlt.com/news/568989.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP 私有函数
    如果某些属性或方法在 PHP 中被声明为 private 可见性关键字,则只能在其类中访问它。Private 函数只能在定义它的类中访问,不能在类外访问。使用 private 函数的一个主要缺点是子类不能继...
    99+
    2024-02-27
  • Python私有函数,私有变量及封装的方法
    这篇“Python私有函数,私有变量及封装的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python私有函数,私有变量...
    99+
    2023-06-29
  • Python学习之私有函数,私有变量及封装详解
    目录什么是私有函数和私有变量私有函数与私有变量的定义方法Python 中的封装面向对象编程小练习通过学习私有函数与私有变量,可以更好的完善 类的开发 ,从而丰满我们的场景与实现方案。...
    99+
    2024-04-02
  • python中私有函数调用方法解密
    本文实例讲述了python中私有函数调用方法。分享给大家供大家参考,具体如下: 与大多数语言一样,Python 也有私有的概念: ① 私有函数不可以从它们的模块外面被调用 ② 私有类方法不能够从它们的类外面...
    99+
    2022-06-04
    函数 方法 python
  • 如何访问python的私有成员函数
    访问python私有成员函数的方法class Plane():# 私有属性__air_sister = "20个"# 公有绑定方法def fly(self):print("飞机会飞")# 公有普通方法def fly2():print("飞机...
    99+
    2024-04-02
  • php有没有mysql_connect函数
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php有没有mysql_connect函数mysql_connect() 函数打开非持久的 MySQL 连接。语法mysql_connect(server,user,...
    99+
    2020-02-29
    php
  • php有没有main函数
    这篇文章主要讲解了“php有没有main函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php有没有main函数”吧!PHP中没有main函数;该函数常用于java与C语言中,又被称为主函...
    99+
    2023-07-02
  • C++ 友元函数如何访问私有成员?
    c++++ 中友元函数访问私有成员的方法有两种:在类内声明友元函数。声明一个类作为友元类,该类中所有的成员函数都可以访问另一个类的私有成员。 C++ 友元函数访问私有成员的方法 友元函...
    99+
    2024-04-15
    友元函数 访问私有成员 c++
  • php有mysql_connect函数吗
    这篇文章主要介绍“php有mysql_connect函数吗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php有mysql_connect函数吗”文章能帮助大家解决问题。PHP中有“mysql_co...
    99+
    2023-06-29
  • php有没有mb_substr()函数
    这篇文章主要介绍“php有没有mb_substr()函数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php有没有mb_substr()函数”文章能帮助大家解决问题。php有mb...
    99+
    2023-07-04
  • PHP 函数的扩展函数有哪些?
    是的,php 函数扩展函数可以修改或增强现有函数的行为,包括:user_error():报告用户可读的错误消息trigger_error():报告 php 错误消息set_error_h...
    99+
    2024-04-10
    php 函数扩展
  • PHP 函数的内置函数有哪些?
    php 提供了一系列内置函数,用于处理字符串、日期、错误和数学计算。这些函数包括(但不限于):字符串处理(strlen、strtoupper、strpos、substr)日期处理(dat...
    99+
    2024-04-10
    函数 php
  • PHP 函数和 SwiftUI 函数有何区别?
    php 函数与 swiftui 函数存在语法、用途和目的上的差异。语法上,php 函数使用 function 声明,而 swiftui 函数使用 func,并且 swiftui 函数指定...
    99+
    2024-04-25
    php函数
  • PHP 函数与 Ruby 函数有何异同?
    php和ruby函数的差异在于:语法:php使用function关键字,ruby使用def关键字定义函数。默认返回值:php不返回时为null,ruby为nil。可变参数:php支持,r...
    99+
    2024-04-24
    php 函数 ruby 函数
  • php没有main函数吗
    PHP中没有main函数;该函数常用于java与C语言中,又被称为主函数,作为绝大部分C程序唯一的入口,是要求有返回值的,返回0代表程序正常执行成功,返回非0值代表程序异常结束;而在PHP中不存在该函数。本文操作环境:Windows10系统...
    99+
    2022-06-16
    php
  • php有没有补0的函数
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php有没有没有补0的函数在php中有两个函数——至少有两个是否有其他的我还不知道,能够实现数字补零,str_pad(),sprintf()详细如下str_pad顾名...
    99+
    2019-08-29
    php
  • php中有没有构造函数
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php中有没有构造函数?php 构造函数__construct(mixed ...$values = ""): voidPHP 允许开发者在一个类中定...
    99+
    2020-02-23
    php
  • PHP 函数和 Vue 函数有什么不同?
    <p>php 函数在服务器端执行,用于处理数据和控制程序流,而 vue 函数在客户端执行,用于操纵 dom 和管理状态。 <p> <p>PHP 函数与...
    99+
    2024-04-24
    vue php
  • PHP 函数与 C 函数有什么不同?
    php 和 c 函数在数据类型、内存管理、指针和语法上存在差异。php 是动态语言,具有垃圾回收机制,而 c 是静态语言,需要手动内存管理。php 支持对zval对象的指针,而 c 使用...
    99+
    2024-04-24
    c php
  • PHP 函数与 Java 函数有什么区别?
    在 php 和 java 中,函数主要区别在于:参数传递:php 按值传递,java 按引用传递。返回值:php 可显式或不返回,java 必需返回与声明匹配的值。访问控制:php 无,...
    99+
    2024-04-24
    php 函数 java 函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作