㈠ php类中给成员属性初始化值为什么报错
PHP类中,若要初始化成员属性,那么成员属性的初始值必须是一个常数,如果不是常数(如变量),则会报错。
㈡ php类定义了属性,而类中其他方法要使用默认值怎么办
不知道我理解的意思对不对,你是想把$a放在第一个参数,而他经常是使用到类的属性值,不用赋默认值。开始我也弄错了~~~
属性$a没必要在方法里面传参,方法体里面直接就可以用了,如果不想改变值可以在方法体里重新声明一个变量,把$a的值赋给他。
㈢ PHP中如何定义类及其成员属性与操作
实测
php中,在类里边可以定义属性
class
a
{
public
$name;
public
$type;
}
在类中不能定义属性,但是可以定义变量,并将其赋给他所在类的属性
class
a
{
public
$name;
function
b(){
$othername
=
1;
$this->name
=
$othername;
}
}
$a
=
new
a();
$a->b();
echo
$a->name;
最后,祝新年快乐
㈣ php类定义了属性,类中的方法要使用默认值怎么办
例如定义了属性$user = 1,方法中就这样$this->user使用。如果是静态属性,static $user = 1,方法中就这样调用self::user
㈤ 在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中有三种访问修饰符,分别是:
public(公共的、默认)
protected(受保护的)
private(私有的)
public(公共的、默认)在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。
protected(受保护的)被声明为protected的成员,只允许该类的子类进行访问。
private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。
㈦ php,给类的属性赋值一个空数组有什么用
主要还是确定类型吧。因为如果这个类属性不赋值一个空数组,但在类方法了使用array_merge()函数合并这个属性的时候,就会产生报错。
classtest{
public$arr1;
public$arr2=[];
//执行这个方法会报错
publicfunctionaction1($arr){
returnarray_merge($this->arr1,$arr);
}
//执行这个方法不会报错
publicfunctionaction2($arr){
returnarray_merge($this->arr2,$arr);
}
}
㈧ php类属性的赋值问题
cache_factory(这个是类名)::$cache_factory(这个是类内的私有静态属性,该属性的值是cache_factory类的实例)->cache_config=$cache_config;其他不需要解释了吧
不过这个代码很烂,不建议把这个当作参考资料。帮你修改了一下,看这个吧
final class cache_factory {
private static $instance;
protected $cache_config = array();
protected $cache_list = array();
protected function __construct(array $configs) {
$this->cache_config = $configs;
}
public static function get_instance(array $cache_config = null) {
if (! self::$instance instanceof cache_factory) {
if (is_null($cache_config)) {
die('无效的初始化设置');
}
self::$instache = new cache_factory($cache_configs);
}
return self::$instance;
}
}
㈨ php类定义了属性,类中的方法要使用默认值怎么办
每个方法都必须要定义的参数就可以直接定义个类属性了,如果不变的话可以直接public $arg='xxx';
如果随着场景不同这个值可能会发生变化,就把赋值放到构造方法里
public function __construct($aa)
{
$this->arg = $aa;
}
$obj = new exp($aa);
下面的方法就不用传参数了,直接调用$this->arg就可以了
再如果每次调用不通的方法,变量arg都不同,就不要定义属性了,直接给方法传值就可以了。
㈩ PHP的变量如何给抽象类中属性符初值
因为抽象类不能被实例化,所以需要通过继承的方式为属性赋值:
前提是抽象类中需要赋值的属性不能被private修饰
<?php
abstract class AbstractClass
{
public $a = 1;
abstract protected function getValue();
// 普通方法(非抽象方法)
public function printOut() {
echo $this->a . "\n";
}
}
class ConcreteClass1 extends AbstractClass
{
protected function getValue() {}
}
$b = new ConcreteClass1();
$b->a = 2;
$b->printOut();
?>