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

PHP 私有函数

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

PHP 私有函数

如果某些属性或方法在 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.

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

免责声明:

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

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

PHP 私有函数

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

下载Word文档

猜你喜欢

PHP 私有函数

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

Python私有函数,私有变量及封装的方法

这篇“Python私有函数,私有变量及封装的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python私有函数,私有变量
2023-06-29

python中私有函数调用方法解密

本文实例讲述了python中私有函数调用方法。分享给大家供大家参考,具体如下: 与大多数语言一样,Python 也有私有的概念: ① 私有函数不可以从它们的模块外面被调用 ② 私有类方法不能够从它们的类外面被调用 ③ 私有属性不能够从它们的
2022-06-04

php有没有main函数

这篇文章主要讲解了“php有没有main函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php有没有main函数”吧!PHP中没有main函数;该函数常用于java与C语言中,又被称为主函
2023-07-02

php有没有mysql_connect函数

PHP中有“mysql_connect()”函数。该函数用于打开非持久的MySQL连接,成功会返回一个MySQL连接标识,失败返回false,语法“mysql_connect(服务器,用户名,密码,newlink,clientflag)”。
2020-02-29

C++ 友元函数如何访问私有成员?

c++++ 中友元函数访问私有成员的方法有两种:在类内声明友元函数。声明一个类作为友元类,该类中所有的成员函数都可以访问另一个类的私有成员。C++ 友元函数访问私有成员的方法友元函数是一种在类外部定义,但可以访问类私有成员的函数。有两种方
C++ 友元函数如何访问私有成员?
2024-04-15

php有mysql_connect函数吗

这篇文章主要介绍“php有mysql_connect函数吗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php有mysql_connect函数吗”文章能帮助大家解决问题。PHP中有“mysql_co
2023-06-29

php有没有mb_substr()函数

这篇文章主要介绍“php有没有mb_substr()函数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php有没有mb_substr()函数”文章能帮助大家解决问题。php有mb_substr()函
2023-07-04

PHP 函数和 SwiftUI 函数有何区别?

php 函数与 swiftui 函数存在语法、用途和目的上的差异。语法上,php 函数使用 function 声明,而 swiftui 函数使用 func,并且 swiftui 函数指定了返回类型。用途上,php 函数主要用于 web 开发
PHP 函数和 SwiftUI 函数有何区别?
2024-04-25

PHP 函数的扩展函数有哪些?

是的,php 函数扩展函数可以修改或增强现有函数的行为,包括:user_error():报告用户可读的错误消息trigger_error():报告 php 错误消息set_error_handler():注册一个用户函数来处理错误resto
PHP 函数的扩展函数有哪些?
2024-04-10

PHP 函数与 Ruby 函数有何异同?

php和ruby函数的差异在于:语法:php使用function关键字,ruby使用def关键字定义函数。默认返回值:php不返回时为null,ruby为nil。可变参数:php支持,ruby不支持。函数重载:php不支持,ruby支持。P
PHP 函数与 Ruby 函数有何异同?
2024-04-24

PHP 函数的内置函数有哪些?

php 提供了一系列内置函数,用于处理字符串、日期、错误和数学计算。这些函数包括(但不限于):字符串处理(strlen、strtoupper、strpos、substr)日期处理(date、strtotime、strftime)错误处理(t
PHP 函数的内置函数有哪些?
2024-04-10

php没有main函数吗

PHP中没有main函数;该函数常用于java与C语言中,又被称为主函数,作为绝大部分C程序唯一的入口,是要求有返回值的,返回0代表程序正常执行成功,返回非0值代表程序异常结束;而在PHP中不存在该函数。本文操作环境:Windows10系统、PHP8.1版、Dell G3电脑php没有main函数吗php没有main函数main函数简介main函数,又称主函数,作为绝大部分C程序唯一的入口,是要求有
2022-06-16

PHP 函数与 Java 函数有什么区别?

在 php 和 java 中,函数主要区别在于:参数传递:php 按值传递,java 按引用传递。返回值:php 可显式或不返回,java 必需返回与声明匹配的值。访问控制:php 无,java 具有 public、protected、de
PHP 函数与 Java 函数有什么区别?
2024-04-24

php有没有补0的函数

在PHP中有实现补0的函数,分别是:1、“str_pad()”函数,语法为“str_pad(数值,补0后的长度,"0",补0的位置)”;2、sprintf()函数,语法为“sprintf(format,数值)”。
2019-08-29

编程热搜

  • 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动态编译

目录