php 类示例,PHP类实例教程(二十二):类型提示
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类实例教程(二十二):类型提示相关推荐
- Matplotlib实例教程(十二)箱形图
前言
- SAP UI5 初学者教程之十二 - 使用 CSS 类对 UI 进行进一步美化试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...
- Atitit 知识与学科的分类 杜威十进分类法 图书分类法已经采用二十二个大类 目录 1.1. 类知识的积累是一个从少到多的过程 1 1.2. 杜威十进分类法(Dewey Decimal Class
Atitit 知识与学科的分类 杜威十进分类法 图书分类法已经采用二十二个大类 目录 1.1. 类知识的积累是一个从少到多的过程 1 1.2. 杜威十进分类法(Dewey Decimal Classi ...
- 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...
- 【Visual C++】游戏开发五十五 浅墨DirectX教程二十二 水乳交融的美学:alpha混合技术
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/15026917 作者:毛星 ...
- SAP UI5 应用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具使用方法介绍
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- Java NIO系列教程(十二) Java NIO与IO
原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html 作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞 当学习了Java ...
- iOS 11开发教程(十二)iOS11应用视图始祖——UIView
iOS 11开发教程(十二)iOS11应用视图始祖--UIView 在Swift中,NSObject是所有类的根类.同样在UIKit框架(UIKit框架为iOS应用程序提供界面对象和控制器)中,也存在 ...
- SAP UI5 应用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件使用方法介绍试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- SAP UI5 应用开发教程之三十二 - 如何创建一个自定义 SAP UI5 控件试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
最新文章
- python 的import m.a.b 和 from m.a import b的区别
- dll文件是什么语言编写的_Win7系统当中libeay32.dll文件丢失的解决方法是什么?...
- IDEA maven项目查自动查看依赖关系,解决包冲突问题
- python canvas画移动物体_canvas中绘制的图像怎么让它移动?
- git 的右键快捷菜单恢复
- 通过命令行方式批量设置保留IP地址的代码
- 前15天mysql_Mysql查询今天/昨天/15天前/上个月/去年/上周每日等函数
- IOS开发之Autolayout——“Content Compression Resistance”和“Content Hugging”
- JavaScript点击事件-一个按钮触发另一个按钮
- nio框架中的多个Selector结构
- python windows自动化 爬虫_使用Python实现自动化截取Windows系统屏幕
- 【2016年第4期】分布式协商:建立稳固分布式 大数据系统的基石
- 支配树(洛谷-P5180)
- 95-240-052-原理-State-MemoryStateBackend
- 图说Netty服务端启动过程
- Dive into Python
- 修改ASP.NET MVC Ajax分页组件ASP.NET MvcPager一个小Bug并修该样式为自己所用(三)...
- 多重背包单调队列优化思路_单调队列优化多重背包问题
- CCS软件的Graph功能
- 循迹小车c语言程序51单片机,51单片机循迹小车Proteus仿真程序