当前位置:首页 » 编程语言 » php调用对象方法

php调用对象方法

发布时间: 2022-12-28 18:42:02

❶ 怎么给 php 对象动态添加方法

来个例子:

<?php
$a=newstdclass();
$a->name=function(){echo'mylove';};

//调用的时候有点麻烦
$b=$a->name;
$b();

后来我想想,这特么和下面这种写法是一样的:

<?php
$a=newstdclass();
$b=$a->name=function(){echo'mylove';};
$b();

反正也不好玩啊。

❷ php创建一个类,在类中声明一个数组存放另一个对象,为什么无法调用数组中对象的方法

//新建一个类User用来存放这,三个数据
//结果放到一个User数组中,你看这可以吗?
//还是说要放到一个list中?

public class ObjectTest {

public static void main(String[] args) {
String[] id = new String[8];
String[] type = new String[8];
String[] username = new String[8];

User[] users = getUsers(type, id, username);
}

private static User[] getUsers(String[] type, String[] id, String[] username) {
User[] users = new User[type.length];
for (int i = 0; i < type.length; i++) {
users[i] = new User(id[i], type[i], username[i]);
}
return users;
}
}

class User {

public User(String id, String tpye, String username) {
this.tpye = tpye;
this.id = id;
this.username = username;
}

private String tpye;
private String id;
private String username;

public String getTpye() {
return this.tpye;
}

public String getId() {
return this.id;
}

public String getUsername() {
return this.username;
}

public void setTpye(String tpye) {
this.tpye = tpye;
}

public void setId(String id) {
this.id = id;
}

public void setUsername(String username) {
this.username = username;
}

}

❸ php 面向对象中类内方法调用方法,可取吗

classA{
staticfunctionfunAS(){
//dosomething
}
functionfunA(){
//dosomething
}
functionfunB(){
//调用本类的A方法,需要实例化
$this->funA();
//调用本类的静态方法,无需实例化
self::funAS();
//调用其它类类方法,需实例化
$o=newB();
$o->funA();
//调用其它类静态方法,无需实例化
B::funAS();
}
}

classB(){
staticfuntionfunAS(){
//dosomething
}
functionfunA(){
//dosomething
}
}

至于限制,看function前面有没有其他修饰符

若有protect,则该方法只能被本类和它的继承类调用

若有private,则该方法只能被本类调用

❹ 微擎PHP怎样调用数据库里a:1:{s:4:"type";s:1:"2";}内数组内容

$a=a:1:{s:4:"type";s:1:"2";};
$b=unserialize($a);
print_r($b);
序列化serialize()与反序列化unserialize():
序列化serialize():就是将一个变量所代表的
“内存数据”转换为“字符串”的形式,并持久保存在硬盘(写入文件中保存)上的一种做法,即,把“内存数据”转换为“字符串”然后保存到文件中;
反序列化unserialize():就是将序列化之后保存在硬盘(文件)上的“字符串数据”恢复为其原来的内存形式的变量数据的一种做法,即,把文件中保存的序列化后的“字符串数据”恢复为“内存数据”;
对象的序列化:1.对一个对象进行序列化,只能将其属性数据“保存起来”,而方法被忽略(方法不是数据),但是类名也能被保存起来,因此反序列化的位置只要有该类文件,就仍然可以将对象还原,即该对象的属性和方法依然可以使用;
2.对象序列化的时候,会自动调用该对象所属类的__sleep()魔术方法;
对象的反序列化:1.对一个对象进行反序列化,其实是恢复原来保存起来的属性数据,而且,此时必须需要依赖该对象原来的所属类;
2.对象反序列化的时候,会自动调用该对象所属类的__wakeup()魔术方法;
总结:一般当我们需要将数据保存到文件中时会用到序列化,保存到数据库中一般不这样用,因为序列化和反序列化的过程其实很耗时

❺ php如何在一个页面调用另一个页面的方法

先用include或require引入要调用的方法所在的类文件,例:
include
'./page.class.php';
然后看该方法是否静态方法,如果是:
直接用类名调用该方法,例:page::方法名();
如果不是静态方法:
先实例化出该类的对象,再用对象调用,例:
$a=new
Page();
$a->方法名();
。。为啥看别人问题只只看得到标题,看不到内容

热点内容
950买什么配置好 发布:2025-07-04 08:39:39 浏览:606
怎样给应用加密 发布:2025-07-04 08:38:41 浏览:455
python的注释符号 发布:2025-07-04 08:29:19 浏览:127
守望领域门禁密码是多少 发布:2025-07-04 08:16:22 浏览:333
存储芯片价格 发布:2025-07-04 08:16:20 浏览:356
大地球源码 发布:2025-07-04 08:10:29 浏览:165
棋牌手游源码 发布:2025-07-04 08:10:18 浏览:818
为啥编程广告 发布:2025-07-04 07:30:01 浏览:570
数据库备机 发布:2025-07-04 07:30:00 浏览:533
静态内部类java 发布:2025-07-04 07:25:45 浏览:235