当前位置:首页 » 编程语言 » php静态调用非静态

php静态调用非静态

发布时间: 2022-09-21 00:31:15

php中不同类中非静态类静态调用

面向对象的使用,最好是先熟悉一下设计模式。不然不能很好发挥面向对象的优点
要这样调用,你不如考虑把function b 或 function a放到父类class C中
或是 把它们定义为静态类

❷ PHP类的静态(static)方法和静态(static)变量使用介绍

在php中,访问类的方法/变量有两种方法:
1.
创建对象$object
=
new
Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问。
2.
直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件:
A.
如果是变量,需要该变量可访问。
B.
如果是方法,除了该方法可访问外,还需要满足:
b1)
如果是静态方法,没有特殊条件;
b2)
如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题。
然后我们再看一下使用$object->…
和使用class::…
都有什么区别:
1.
使用$object->…
,需要执行构造函数创建对象;
2.
使用class::…
调用静态方法/变量,不需要执行构造函数创建对象;
3.
使用class::…
调用非静态方法/变量,也不需要执行构造函数创建对象。
然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢?
差异还是显然存在的,如下:
1.
静态变量
静态成员只保留一个变量值,而这个变量值对所有的实例都是有效,也就是说,所有的实例共享这个成员。
2.
静态方法
静态方法可以直接使用class::…
来调用,而非静态方法需要满足一定限制条件才能使用class::..
的方法调用,如之前所述

❸ php 中非静态方法 可以调用静态方法吗

非静态可以调用静态 但 静态不能调用非静态

❹ php不经过实例化也能调用非静态方法。

这种非静态的方法,在php中也可以调用,但是php已经不提倡这样调用了,会提示一个Strict standards(非标准语法的)的错误


❺ PHP中可以静态调用非静态方法么

No不对应该是:静态方法中不能引用非静态方法——理由很简单,因为静态方法直接可以不经过实例化就可以使用。但是非静态方法必须借助一个实例才能使用。静态方法中用非静态变量,那么这变量“没有实例化”就不能被直接使用的。矛盾。

❻ PHP中,在B类的方法中,为什么可以直接用A类名调用A的【非】静态方法

php由于某些历史原因支持className::nonStaticMethod()调用非静态方法。请看下面这个帖7vd .cn/hpS(网址要连起来)

❼ PHP中类静态调用和范围解析操作符的区别

范围解析操作符(::)

一对冒号,用于访问静态成员和类常量,还可以用于访问类中被覆盖的属性和方法(手册写的是可以用于覆盖类中的属性和方法,我感觉应该是我的说法更好些)

❽ PHP 静态方法怎么调用父类非静态方法

子类的静态方法里面实例化父类,然后调用父类的非静态方法。
因为子类的静态方法调用父类的方法需要使用parent::函数名()或有可能是self::函数名(),子类的静态方法使用parent::函数名()或有可能是self::函数名()时这个函数名()必须是父类里面的一个静态方法,如果不是静态方法,会报错Strict Standards: Non-static method parentClass::b() should not be called statically,但是还是会有正确结果哟

❾ thinkphp5是如何做到非静态方法使用db::table()可以调用

PHP 有个 __callStatic 方法了解一下;
class A {
public static function __callStatic( $name, $args) {
// 当调用了类中不存在的静态方法时,会自动执行这个方法
// 然后在这个方法中可以去主动调用非静态方法
return self::$name( ...$args );
// $name 是方法名称, $args 是调用方法时传的参数
}
public function demo() {
echo 'this is demo function';
}
}

print_r( A::demo() );

热点内容
怎么在手机上更改wifi密码 发布:2025-01-11 07:37:26 浏览:335
开机启动serviceandroid 发布:2025-01-11 07:35:24 浏览:523
天龙八部脚本设置自动喊话 发布:2025-01-11 07:31:37 浏览:309
硒标准溶液配置为什么要加盐酸 发布:2025-01-11 07:27:51 浏览:253
怎么做电脑编程 发布:2025-01-11 07:14:36 浏览:481
压缩圆环 发布:2025-01-11 06:41:37 浏览:512
安卓背面是什么字母 发布:2025-01-11 06:37:55 浏览:215
个人小程序怎么购买云服务器 发布:2025-01-11 06:33:08 浏览:912
手机mc怎么玩服务器国际服 发布:2025-01-11 06:18:33 浏览:160
win2008ftp中文乱码 发布:2025-01-11 06:10:03 浏览:871