PHP 类中静态方法调用非静态方法
静态方法调用非静态方法: 在类中静态方法中,需要实例化对象,然后再调用类中的方法
非静态方法调用静态方法: 可以self 或者 类名加::的形式调用
如下面的案例:
<?php
class A{
public function noneStaticFun(){
echo __CLASS__." none static function<br/>";
}
public static function staticFun(){
echo __CLASS__." static function<br/>";
//静态方法调用非静态方法,需要实例化对象然后再调用对象中的非静态方法
(new A())->noneStaticFun();
}
public function testCallStaticFun(){
echo "call static function<br/>";
//调用本类的静态方法,使用 self关键字或者类名
self::staticFun();
//A::staticFun(); //也可以使用这种方式
//调用其它类的静态方法,直接使用类名::方法名的形式调用
B::myStaticFun();
}
}
class B{
public static function myStaticFun(){
echo __CLASS__." static function<br/>";
}
}
//演示
$testA = new A();
$testA->testCallStaticFun();
A::staticFun();
运行结果:
call static function
A static function
A none static function
B static function
A static function
A none static function
PHP 类中静态方法调用非静态方法的更多相关文章
- java静态方法调用非静态方法
我们都知道,静态static方法中不能调用非静态non-static方法,准确地说是不能直接调用non-static方法.但是可以通过将一个对象的引用传入static方法中,再去调用该对象的non-s ...
- C# 静态方法调用非静态方法
转载:http://blog.csdn.net/seattle1215/article/details/6657814 using System; using System.Collections.G ...
- java中静态方法和非静态方法调用的一点小困扰,已解决。
public static void main(String[] args) { // TODO Auto-generated method stub SimpleGui1B gui=new Simp ...
- <转>java中静态方法和非静态方法的存储
Java中非静态方法是否共用同一块内存? 将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance met ...
- 【转】java中静态方法和非静态方法的存储
将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance method 是否也会新增一份?答案是不会,我们 ...
- PHP中静态(static)调用非静态方法详解
1.PHP中可以静态调用非静态方法么? 今天我被问到PHP中可不可以使用 className::methodName() 的方法来调用一个没有声明static的方法.在我的印象中,我好像是见过这种用法 ...
- java中静态方法中为什么不能使用this、super和直接调用非静态方法
这个要从java的内存机制去分析,首先当你New 一个对象的时候,并不是先在堆中为对象开辟内存空间,而是先将类中的静态方法(带有static修饰的静态函数)的代码加载到一个叫做方法区的地方,然后再在堆 ...
- JAVA Main方法中调用非静态方法
在JAVA中静态方法中只能调用其他,静态方法.main方法都是静态方法,如果想调用其它的方法,要么只能是其它的静态方法.还有一种方法就是将当前类实例化在调用它的非静态方法 public class t ...
- PHP中静态(static)调用非静态方法详解--调用!!!
来源:https://www.cnblogs.com/yolo-bean/p/7739265.html 这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么 ...
随机推荐
- django 内置server 外网不能访问, 报连接超时
按照官网教程,以 python manage.py runserver 其访问url为 http://127.0.0.1:8000,意味着只能本机访问,而我的django app 部署在 阿里云上面 ...
- 【记录】eclipse / STS 设置注释模版格式/导入注释模版格式
设置注释模板的入口:Window->Preference->Java->Code Style->Code Template 将如下保存在新创建的xml文件中,导入进去 < ...
- 项目案例之Pipeline流水线及流水线发布PHP项目(二)
项目案例之Pipeline流水线及流水线发布PHP项目(二) 链接:https://pan.baidu.com/s/1NZZbocZuNwtQS0eGkkglXQ 提取码:z7gj 复制这段内容后打开 ...
- React中Class的概念
Class的概念 一.简介 javaScript是面向对象的编程语言,可以说所以的能够被描述的事.物或抽象的东西,都是可以是对象.而我们记录的对象,会有具有同样的属性和行为. 为了节省重写相同的代码. ...
- 设置ll命令
ll 是 ls -l的别名,之所以 ll出现错误是因为没有定义别名. 如果要实现ll 命令,可以做如下操作: 1.编辑 ~./bashrc 添加 ls -l 的别名为 ll即可. vi /root/. ...
- Vue学习笔记【7】——Vue指令之v-model和双向数据绑定
v-model是唯一可以实现双向数据绑定的vue指令 单向数据绑定:修改内存中的数据,页面上同步更改.v-bind <!-- v-bind 只能实现数据的单向绑定,从 M 自动绑定到 V, 无法 ...
- auth 模块使用篇
from django.cintrib import auth #登录模块 只要用auth模块一旦登录 就可以在项目的任意地方用request.user 拿到当前的用户对象 再通过 request ...
- PHP ftp_get() 函数
定义和用法 ftp_get() 函数从 FTP 服务器上下载一个文件并保存到本地一个文件中. 如果成功,该函数返回 TRUE.如果失败,则返回 FALSE. 语法 ftp_get(ftp_connec ...
- 使用ionic来build安卓apk时,报CordovaError: Requirements check failed for JDK 1.8 or greater
本地配置了JDK和jre的本地环境变量之后,在命令行中运行Java.javac等都能正常输出,但是在使用ionic cordova build android 来打包ionic的程序时,会提示 Cor ...
- 使用 windsor 实现IOC 和 AOP
代码很简单,不多说. 对于拦截,windsor 使用动态代理的方式,即生成继承类的方式来实现的,因此无法拦截private 方法,因为无法在继承类中看见private方法. using System; ...