PHP——告别数组做方法返回值吧

编程

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方法其实都是类似的,完全可以用脚本来生成。后面我会尝试来编写一个这样的脚本。

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

以上是 PHP——告别数组做方法返回值吧 的全部内容, 来源链接: utcz.com/z/511345.html

回到顶部