PHP是弱类型语言,向方法传递参数时候也不太区分类型。这样的使用会引起很多的问题,PHP开发者认为,这些问题应该是由代码书写者在书写代码时进行检验以避免。没有类型提示很危险。

class NormalUser

{

/*

* 其它相关代码..省略........

*/

private $age;

public function setAge($_age) {

$this->age = $_age;

}

public function getAge() {

return $this->age ;

}

}

$normalUser = new NormalUser();

$normalUser->setAge("I am tom");//这里我们传输一个非数值

echo "age is " . $normalUser->getAge();//注意输出结果不是我想要的类型

?>

原始类型的类型判

PHP中提供了一些函数,来判断数值的类型。我们可使用is_numeric()。判断是否是一个数值或者可转换为数值的字符串。

其它相关的还有is_bool()、is_int()、is_float()、is_integer()、is_numeric()、is_string()、is_array() 和 is_object()。

于是代码有了修改

class NormalUser

{

/*

* 其它相关代码..省略........

*/

private $age;

public function setAge($_age) {

if (is_numeric($_age)) {

$this->age = $_age;

}

}

public function getAge() {

return $this->age ;

}

}

$normalUser = new NormalUser();

$normalUser->setAge("I am tom"); //这里我们传输一个非数值.

echo "age is " . $normalUser->getAge();//看到这里的结果为空.

echo "
";

$normalUser->setAge("100");

echo "age is " . $normalUser->getAge();// 这里就有了结果.

?>

向方法内传递对象

如果传递的参数是一个对象呢?

下面的代码用起来很正常。

class NOrmalUser

{

private $name;

function setName($_name) {

$this->name = $_name;

}

function getName() {

return $this->name;

}

}

class UserAdmin

{

//这里定义的参数,第一个是User类的实例,第二个是要设置的名字

static function changeName($_user, $_name) {

$_user->setName($_name);

}

}

$normalUser = new NOrmalUser();

UserAdmin::changeName($normalUser, "tom");

echo "username is " . $normalUser->getName();

?>

php 类示例,PHP类实例教程(二十二):类型提示相关推荐

  1. Matplotlib实例教程(十二)箱形图

    前言

  2. SAP UI5 初学者教程之十二 - 使用 CSS 类对 UI 进行进一步美化试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  3. Atitit 知识与学科的分类 杜威十进分类法 图书分类法已经采用二十二个大类 目录 1.1. 类知识的积累是一个从少到多的过程 1 1.2. 杜威十进分类法(Dewey Decimal Class

    Atitit 知识与学科的分类 杜威十进分类法 图书分类法已经采用二十二个大类 目录 1.1. 类知识的积累是一个从少到多的过程 1 1.2. 杜威十进分类法(Dewey Decimal Classi ...

  4. 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...

  5. 【Visual C++】游戏开发五十五 浅墨DirectX教程二十二 水乳交融的美学:alpha混合技术

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/15026917 作者:毛星 ...

  6. SAP UI5 应用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具使用方法介绍

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  7. Java NIO系列教程(十二) Java NIO与IO

    原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html 作者:Jakob Jenkov   译者:郭蕾    校对:方腾飞 当学习了Java ...

  8. iOS 11开发教程(十二)iOS11应用视图始祖——UIView

    iOS 11开发教程(十二)iOS11应用视图始祖--UIView 在Swift中,NSObject是所有类的根类.同样在UIKit框架(UIKit框架为iOS应用程序提供界面对象和控制器)中,也存在 ...

  9. SAP UI5 应用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件使用方法介绍试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  10. SAP UI5 应用开发教程之三十二 - 如何创建一个自定义 SAP UI5 控件试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

最新文章

  1. python 的import m.a.b 和 from m.a import b的区别
  2. dll文件是什么语言编写的_Win7系统当中libeay32.dll文件丢失的解决方法是什么?...
  3. IDEA maven项目查自动查看依赖关系,解决包冲突问题
  4. python canvas画移动物体_canvas中绘制的图像怎么让它移动?
  5. git 的右键快捷菜单恢复
  6. 通过命令行方式批量设置保留IP地址的代码
  7. 前15天mysql_Mysql查询今天/昨天/15天前/上个月/去年/上周每日等函数
  8. IOS开发之Autolayout——“Content Compression Resistance”和“Content Hugging”
  9. JavaScript点击事件-一个按钮触发另一个按钮
  10. nio框架中的多个Selector结构
  11. python windows自动化 爬虫_使用Python实现自动化截取Windows系统屏幕
  12. 【2016年第4期】分布式协商:建立稳固分布式 大数据系统的基石
  13. 支配树(洛谷-P5180)
  14. 95-240-052-原理-State-MemoryStateBackend
  15. 图说Netty服务端启动过程
  16. Dive into Python
  17. 修改ASP.NET MVC Ajax分页组件ASP.NET MvcPager一个小Bug并修该样式为自己所用(三)...
  18. 多重背包单调队列优化思路_单调队列优化多重背包问题
  19. CCS软件的Graph功能
  20. 循迹小车c语言程序51单片机,51单片机循迹小车Proteus仿真程序

热门文章

  1. 第一次作业:阅读优秀博文谈感想
  2. 非系统表空间损坏,rman备份恢复
  3. C++模板之特化与偏特化详解
  4. 12款很棒的浏览器兼容性测试工具
  5. C语言复习篇之数组与指针
  6. 用指针的观点来深入理解dup和dup2的用法
  7. 检查 linux guest vm 使用的什么 虚拟化技术
  8. linux yum install 与 yum groupinstall 区别
  9. linux nDPI 协议检测 源码分析
  10. VirtFS 虚拟化技术简介