PHP中如何定义对象类型数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中如何定义对象类型数组相关的知识,希望对你有一定的参考价值。

例如 :
第一个文件:文件名为:Department.php
<?php
class Department

private $department;

public function getDepartment()

return $this->department;


public function setDepartment($department)

$this->department=$department;


?>

第二个文件:
<?php
define('ROOT_PATH',dirname(dirname(__FILE__)));
include (ROOT_PATH."/Common/class.DBConnect.php");
include (ROOT_PATH."/Class/class.Department.php");
class Select

public function selectDepartment()

$sql="select * from YX_Department";
$DBObject= new DBConnect();
$result=$DBObject->DBControl($sql);
$DepartObject= new Department();
while ($row=mysql_fetch_array($result))

$DepartObject->setDepartment($row[0]);




?>
我想把数据库里面读出来的数据循环存储到 Department的对象数组中,方便再其他地方调用,请问while里面应该怎么写呢。

参考技术A 应该是存到对象属性中吧
你把
public function setDepartment($department)

$this->department=$department;

改成
public function setDepartment($department)

$this->department[]=$department;

即可
private $department;
要不要改成
private $department=array();
其实无所谓追问

那获取值的时候该怎么写呢。如何判断数组长度呀。。

追答

获取值你用同一个$DepartObject对象(注意,我说的是同一个对象,不明白继续问我)
调用getDepartment这个方法(这些代码是你自己写的么?)
$DepartObject->getDepartment();
照你这样的写法
估计得用全局变量
$GLOBALS["DepartObject"]->getDepartment();
这样的写法才能在其他的地方使用。。
数组长度用count,不知道怎么用去查php使用手册吧

追问

我已经解决掉了,谢谢你啦, 虽然不是用你的方法,但是你多少还是给了我点提示。。谢谢啊
不过我 在改用PDO 链接数据库 提示:
SQLSTATE[42000] [1044] Access denied for user ''@'localhost' to database 'njyxcompany'
用户名已经是ROOT了
而且链接别的库都是可以的 就是这个库有点问题,请问怎么弄呢 拜托啦 我真的很急

追答

是root不代表就是最高权限,可能这个库把你的root账号限制了权限

追问

我实在找不到问题了 一气之下 在数据库中的everyone中添加了所有权限 这下到是可以用了!!

追答

很明显,权限不足么,呵呵

参考技术B $a=array();
while ($row=mysql_fetch_array($result))

$d= new Department();
$d->setDepartment($row[0]);
$a[]=$d;
本回答被提问者采纳

以上是关于PHP中如何定义对象类型数组的主要内容,如果未能解决你的问题,请参考以下文章

PHP 7 中的类型提示 - 对象数组

如何将从webapi返回的自定义对象数组的HttpResponse响应分配给打字稿角度中相同数组类型的对象?

关于PHP如何定义一个空对象

如何在我的 GraphQL 中为对象中的对象列表定义类型

如何在我的GraphQL中为对象中的对象列表定义类型

如何把对象转化为字符串 php