php返回数组的方法吗,PHP——告别数组做方法返回值吧

本文探讨了PHP中数组作为方法返回值可能导致的隐性问题,与Java对象明确的数据结构进行对比,强调了使用对象的优点。通过实例展示了如何使用对象提高代码结构清晰度和可维护性,并提及自动化生成get和set方法的解决方案。
摘要由CSDN通过智能技术生成

PHP编程中,我们习惯于用数组作为方法的返回值。因为PHP最早是一门面向过程的语言,这样的编程风格持续至今。

使用数组作为返回值,有个很大的问题,如果不运行脚本var_dump(),我们完全不知道数组里面包含些什么数据。Java却很好的避免了这个问题,所有方法的返回值都是对象,优点显而易见,对象有明确的数据结构,只要知道对象的类型,就知道它有哪些属性和方法。不仅方便了开发过程,也提升了代码的可靠性。

先来看下使用数组的编程方式:

Class Book

{

public function getUser()

{

$arr["name"] = "crazymus";

$arr["age"] = 30;

return $arr;

}

}

$user = (new Book())->getUser();

echo $user["name"]; // name属性存在吗?

echo $user["age"]; // age属性存在吗?

获取到$user后,如果不去看getUser方法,你肯定不知道$user里面包含些什么,使用起来很不方便。

下面再看看使用对象的编程方式:

class UserVo

{

protected $name;

protected $age;

public function getName()

{

return $this->name;

}

public function setName($value)

{

$this->name = $value;

}

public function setAge($age)

{

$this->age = $age;

}

public function getAge()

{

return $this->age;

}

}

先定义一个User对象,这是我们后面需要使用的。

Class Book

{

/**

* @return UserVo

*/

public function getUser()

{

$user = new UserVo();

$user->setName("crazymus");

$user->setAge(30);

return $user;

}

}

$user = (new Book())->getUser();

echo $user->getName();

echo $user->getAge();

可以看到getUser方法返回的不再是数组,而是User对象,它的数据结构上面已经有了明确的定义。如果你使用IDE来编程,根据代码提示就能知道它有getName和getAge两个方法,使用起来非常方便。

可能有人会说,如果每个方法都要去编写一个单独的返回值类,也很麻烦。

是个好问题,我已经想到解决方案了,get和set方法其实都是类似的,完全可以用脚本来生成。后面我会尝试来编写一个这样的脚本。

编程最大的目的就是让机器来帮助我们做重复的工作,当你体会到这一点,就会发现程序员的工作原来如此有趣~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值