说明
写了一段时间的java之后,特别不习惯PHP本身的弱类型方式,在写代码的时候总觉得不怎么放心,特别本身PHP又是弱类型的语言,所以在编码的时候,很多时候是没有代码提示的。
一个一般例子
class Data {
public $name;
public $gender;
public $age;
public function __construct($name,$gender,$age) {
$this->name = $name;
$this->gender = $gender;
$this->age = $age;
}
}
class Test {
public function run() {
$data = [
new Data('张三','男',18),
new Data('李四','男',14),
new Data('王五','男',17),
new Data('大姨妈','女',23),
];
}
private function eachData($data) {
foreach($data as $item) {
echo $item->name.'=>'.$item->gender.'=>'.$item->age."\n";
}
}
}
(new Test)->run();
以上例子来看,一般来说其实也是不存在什么问题的,但是在编写
cho $item->name.'=>'.$item->sex.'=>'.$item->age."\n";
这段代码的时候,在调用属性的时候是没有自动提示的,那么数据量大的时候需要往上翻然后进行copy或者编写下来,降低编码速度,而且有时候心里还没谱,怕写错。
以下是我写的一个完整的利用注释和本身PHP特性的例子:
class Data {
public $name;
public $gender;
public $age;
public function __construct($name,$gender,$age) {
$this->name = $name;
$this->sex = $gender;
$this->age = $age;
}
}
class Test {
public function run() {
$data = [
new Data('张三','男',18),
new Data('李四','男',14),
new Data('王五','男',17),
new Data('大姨妈','女',23),
];
}
/**
* 遍历输出数据
* @param array $data
*/
private function eachData($data) {
foreach($data as $item) {
if($item instanceof Data) {
echo $item->name.'=>'.$item->gender.'=>'.$item->age."\n";
}
}
}
}
(new Test)->run();
这里主要的是加了一个if判断,判断数据类型是否是Data的一个具体实例;
在这个地方,PHPstorm会根据这个判断在做$item属性调用的时候会有自动提示,非常的方便。
思考
从这里得到的一些思考,那就是我们在编写程序的时候可以更好的考虑严谨性,从上面的例子来看,这样子做了,再加一些错误处理机制,能更好的保证数据的安全性和完整性,不仅仅是编辑器提示的方便。
后续再做代码检查和跟踪的时候,将也是一件非常方便的事情,而且业务逻辑也更清晰。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
PHP有序表查找之插值查找算法示例这篇文章主要介绍了PHP有序表查找之插值查找算法,简单分析了插值查找算法的概念、原理并结合实例形式分析了php实
ThinkPHP整合datatables实现服务端分页的示例代码下面小编就为大家分享一篇ThinkPHP整合datatables实现服务端分页的示例代码,具有很好的参考价值,希望对大家有所帮
PHP实现APP微信支付的实例讲解下面小编就为大家分享一篇PHP实现APP微信支付的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小
PHP实现的多维数组排序算法分析这篇文章主要介绍了PHP实现的多维数组排序算法,结合实例形式对比分析了php针对多维数组及带有键名的多维数组进行
php+ajax实现无刷新文件上传功能(ajaxuploadfile)这篇文章主要为大家详细介绍了php结合ajaxuploadfile实现无刷新文件上传功能,具有一定的参考价值,感兴趣的小伙伴们
PHP的RSA加密解密方法以及开发接口使用本篇文章给大家详细介绍了PHP开发接口使用RSA进行加密解密方法,对此有兴趣的朋友可以学习下。