php protected只能被继承,不可以在实例中调用,parent::调用父类(子类函数的重载对父类的函数没有影响)

<?php
class a {
    private function fun1(){
        echo ‘a1‘;
    }
    //protected 可以被继承,但是只能在子类中使用,不能被实例化调用
    protected function fun2(){
        echo ‘a2‘;
    }
    public function fun3(){
        echo ‘a3‘;
    }
}

class b extends a{
    public function __construct(){
        $this->fun2();
    }
    public function fun3(){
        echo ‘b3‘;
    }
    public function fun4(){
        echo ‘b4‘;
        parent::fun3();
    }
}
$b = new b();   //调用构造函数。调用父类a的fun2,输出a2
$b->fun3(); //调用重载后自己的fun3,输出b3
$b->fun4(); //调用自己的fun4,输出b4,然后又调用了父类的fun3(parent::调用没被重载的版本,父类的原版),输出a3
//$b->fun2()  //出错,因为protecd只可以被继承,不能在实例对象中调用
时间: 2024-08-26 07:33:50

php protected只能被继承,不可以在实例中调用,parent::调用父类(子类函数的重载对父类的函数没有影响)的相关文章

[C#]只能运行程序的一个实例

C#实现只能运行程序的一个实例(添加在窗体的Load事件中) 1. 根据进行名限制只能运行程序的一个实例 System.Diagnostics.Process process = System.Diagnostics.Process.GetCurrentProcess(); System.Diagnostics.Process[] processList = System.Diagnostics.Process.GetProcessesByName(process.ProcessName); 

SQLServer 数据加密解密:在多个服务器实例中创建相同对称密钥(三)

创建相同的对称密钥非常容易.使用相同的 KEY_SOURCE.ALGORITHM 和 IDENTITY_VALUE 密钥选项创建的对称密钥将是相同的. -- 创建测试 use [Temp] go -- drop table EnryptTest create table EnryptTest ( id int not null primary key, EnryptData nvarchar(20), ) go insert into EnryptTest values(1,N'888888')

问题:只能在执行 Render() 的过程中调用 RegisterForEventValidation;结果:只能在执行 Render() 的过程中调用 RegisterForEventValidation

只能在执行 Render() 的过程中调用 RegisterForEventValidation 当在导出Execl或Word的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示.下面的2中方法是在网上找到的,没有应用:1.修改web.config(不推荐) <pages enableEventValidation ="false" ></pages> 2.直接在导出Execl的页面修改 <

【 python 学习笔记 -- OOP】在实例中学习继承(inheritance)和组合(composition)

[面向对象的三大特征]: [封装(encapsulation)]: 通过抽象的类把数据和方法封装起来.实例的数据只能通过public interface(即实例的方法)来获取或操作. [优点]:1. 功能只需在一个地方定义,而不需要在很多地方重复定义 2. 保证对象内部的数据的安全性 3. 当我们想要使用一个方法的时候,我们只需要知道我们用这个方法会返回什么结果,而不需要知道内部到底做了哪些操作来实现的.  就好像我们看电视时想要换频道,只需要按几个按钮,不需要知道要怎么调频. [继承  (in

Vue实例 中的常用配置项

创建Vue实例时,使用 new Vue ({//配置项}) 或者 组件定义中 export default {//配置项},所有的Vue组件都是Vue实例,并且接受相同的选项对象(一些根实例特有的选项除外) 如: new Vue({//选项配置 el: '#app', components: { App }, template: '<App/>' }) 配置项一共可以分为六大类:数据.DOM.生命周期钩子.资源.组合.其他 一.数据 (1)data:Vue根实例或者当前组件上的数据对象,类型可

只能在执行Render() 的过程中调用 RegisterForEventValidation;

October 17, 2008  3:28 PMMarch 29, 2013  8:28 PM Aillo 编程   0 Comments 在实现"将GridView中的数据导出到Excel中"的时候出现了如下错误: 用户代码未处理 InvalidOperationException 只能在执行 Render() 的过程中调用 RegisterForEventValidation: EnableEventValidation属性是 .NET Framework 2.0 中是新增的属性

HTML小实例:通过PHP调用C++

一.在本地服务器目录下新建一个 test 文件夹,在此文件夹中新建文件: 1. cpp.html <!DOCTYPE html> <html> <head> <title>C++测试</title> </head> <body> <form method="post" action="cpp.php"> <div> <p>请测试文字,以空格分隔:&

Vue 实例中的生命周期钩子

Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑. Vue 实例 在文档中经常会使用 vm 这个变量名表示 Vue 实例,在实例化 Vue 时,需要传入一个选项对象,它可以包含数据(data).模板(template).挂载元素(el).方法(methods).生命周期钩子(lifecyclehook)等选项. Vue 实例化的选项 需要注意的

PHP限制网页只能在微信内置浏览器中查看并显示

微信现在算是火了,围绕微信开发的应用也越来越多了,前段时间,自己公司需要,用PHP写了一个微信应用,为了防止自己辛苦写成的PHP应用被盗用,于是通过PHP做了限制,只能在微信自带的浏览器中才能打开本应用,一开始无头绪,后经多查证,总算把这功能弄出来了,现在把具体的代码分享给大家. 1 2 3 4 5 6 7 8 <?php $useragent = addslashes($_SERVER['HTTP_USER_AGENT']); if(strpos($useragent, 'MicroMesse