phpd出“undefined property:stdclass” ,怎么解决

phpd出“undefined property:stdclass” ,怎么解决,第1张

这种情况一般是你对一个类对象,使用了属性调用造成的。

比如应该是

 echo $a->att1;

你写错成了:

 echo $a['att1'];

改回来就可以了。

PHP中使用关键字 class 来定义一个类。类的命名一般使用首字符大写,而后每个单词首字符大写连接的方式方便阅读。

在PHP5中,属性指在class 中声明的变量。在声明变量时,必须使用 public private protected 之一进行修饰,定义变量的访问权限。PHP中的属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态)

Public(公开): 可以自由的在类的内部外部读取、修改。

Private(私有): 只能在这个当前类的内部读取、修改。

Protected(受保护):能够在这个类和类的子类中读取和修改。

属性的使用:通过引用变量的 -> 符号调用变量指向对象的属性。

在方法内部通过 $this-> 符号调用同一对象的属性。

所以应该用箭头调用而不是括号。

count()计算数组中的元素数目或对象中的属性个数。3current()返回数组中的当前元素。3each()返回数组中当前的键/值对并将数组指针向前移动一步。3end()将数组的内部指针指向最后一个元素。3extract()从数组中将变量导入到当前的符号表。3in_array()检查数组中是否存在指定的值。4key()从关联数组中取得键名。3krsort()对数组按照键名逆向排序。3ksort()对数组按照键名排序。3list()把数组中的值赋给一些变量。3natcasesort()用“自然排序”算法对数组进行不区分大小写字母的排序。4natsort()用“自然排序”算法对数组排序。4next()将数组中的内部指针向前移动一位。3pos()current()

的别名。3prev()将数组的内部指针倒回一位。3range()建立一个包含指定范围的元素的数组。3reset()将数组的内部指针指向第一个元素。3rsort()对数组逆向排序。3shuffle()把数组中的元素按随机顺序重新排列。3sizeof()count()

的别名。3sort()对数组排序。3uasort()使用用户自定义的比较函数对数组中的值进行排序并保持索引关联。3uksort()使用用户自定义的比较函数对数组中的键名进行排序。3usort()使用用户自定义的比较函数对数组中的值进行排序。3

你总共提了三个问题,三个问题都是关于访问权限控制的,建议你将面向对象的访问权限控制的那部分给学习一下。

(1)类里的变量是否一定要声明为成员属性,

答:不一定,在一个类中,有构造函数、属性、方法;未在方法和构造函数中声明的变量为属性,属性是体现这一个类(对象)的特性的描述,他是这个类的特性的描述,这个类的状态的改变将会随着这些属性值的改变而改变。如果某一变量不属于这个类的属性,当然可以声明在别的地方,只要在访问权限内,当然也可以访问,就像foreach($this->post as $key=>$value),$key与$value都不是类的属性,当然不用声明在类的属性部分了,这里的$key与$value便成了这个方法的局部变量。

(2)非类的属性,绝对不能用$this->来访问,$this指的是当前对象,$this->所指向的是当前对象的属性或许方法,既然不是类的属性,当然不能用$this->来访问了,

以上就是关于phpd出“undefined property:stdclass” ,怎么解决全部的内容,包括:phpd出“undefined property:stdclass” ,怎么解决、PHP-Array函数简介-数组 *** 作-php实例教程、关于 php 类成员属性声明和访问的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10058225.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存