① 在php中如何设置类的属性,如何调用类的方法
PHP访问类的属性、方法使用箭头语法(->)。这里我给你一个例子供你参考:
<?php
classMyClass{//定义MyClass类
public$name;//定义了一个公有属性
protected$_age;//定义了一个保护属性
private$_email;//定义了一个私有属性
publicfunctionmy_method(){//定义my_method方法
}
protectedfunction_my_method2(){//定义_my_method2方法
}
}
$obj=newMyClass;//实例化
$obj->name='noname';//设置name属性
$obj->_age=12;//这是错误的,不能设置保护属性
$obj->address='KingStreet.'//设置一个未声明的属性是允许的,效果和公有属性类似,但未赋值前不能使用。
$obj->my_method()//调用公有方法
$obj->_my_method2();//这是错误的,不能调用保护方法
你需要理解继承、公有、保护和私有的概念。
继承:子类继承父类的公有、保护属性和方法。
公有:类的实例可以访问的属性和方法。
保护:只能在类的内部及其子类内部访问的属性和方法。
私有:只能在类的内部访问的属性和方法。
这是个很基础的问题,建议你多看书。
② php中根据类名怎么动态获取已定义的类对象并动态调用某个方法
在 PHP 中,可以通过类名来动态获取已定义的类对象,然后再调用类的方法。可以使用以下两个函数来实现:
1. `class_exists()` 函数可以判断一个类是否已经定义。
2. `call_user_func()` 函数可以动态调用一个方法。
下面是示例代码:
```
// 判断类是否已定义
if (class_exists('ClassName')) {
// 实例化类对象
$obj = new ClassName();
// 动态调用方法
call_user_func(array($obj, 'methodName'));
}
```
在这个示例中,`ClassName` 是要动态获取的类名,`methodName` 是要调用的方法名。首先,使用 `class_exists()` 函数判断类是否已经定义,如果已经定义,则使用 `new` 关键字实例化类对象,并将其赋值给 `$obj` 变量。然后,使用 `call_user_func()` 函数动态调用方法。`array($obj, 'methodName')` 表示要调用 `$obj` 对象的 `methodName()` 方法。
需要注意的是,如果要调用的方法需要传递参数,可以在 `call_user_func()` 函数的第二个参数之后依次添加参数值。例如,如果要传递一个参数,可以这样调用:
```
call_user_func(array($obj, 'methodName'), $param1);
```
其中,`$param1` 是要传递的参数值。
③ php 类中方法之间参数怎么调用
class A
{
public $bb,$cc;
function othersomething()
{
return $this->cc;
}
}
function dosomething()
{
$bb = $this->bb;
$othersomething = $this->othersomething();
}
方法的参数是新定义一个变量,注意是新定义,方法结束自动销毁,
2.PHP类中方法定义的参数与调用时的参数名称可以不同。
带默认值的就是指当这些参数没有给出的时候可以按照预定义内容进行赋值(按参数顺序调用)。
functiontext($i,$a="test1",$test="test2"){
echo"<h1>{$i}</h1>";
echo"<h1>{$a}</h1>";
echo"<h1>{$test}</h1>";
}
2.调用:
text("test");
----显示
test
test1
test2
text("test","test3","test4");
----显示
test
test3
test4