PHP的基本数据类型
来源:互联网 发布:日语发音软件 编辑:程序博客网 时间:2024/06/02 04:28
PHP提供了九种类型的值或称为数据类型。
四种标量型(单值):整型,浮点型,字符串和布尔型。
两种复合类型(集合):数组、对象。
三种种特殊类型:资源类型、NULL类型、callable类型(PHP 5.4之前的callback伪类型)
1. 标量型
1.1 integer整型
//长度与C编译器的长数据类型的范围相当;
//整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。
$i1 = 123;<span style="white-space:pre"></span>$i2 = 0b111;<span style="white-space:pre"></span>//二进制前加 0b , <span style="white-space: pre;">二进制表达的 integer 自 PHP 5.4.0 起可用。</span>$i3 = 0123;<span style="white-space:pre"></span>//八进制前加 0(零)$i4 = 0x123;<span style="white-space:pre"></span>//十六进制前加 0xecho '十进制:'.$i1."\n";echo '二进制:'.$i2."\n";echo '八进制:'.$i3."\n";echo '十六进制:'.$i4."\n";可以使用is_int() 函数判断一个值是否是一个整型
if(is_int(0x123)){ echo 'is integer';}else { echo 'not integer';}//可以通过 (integer)$x 或 intval($x)函数将不同类型转换成整型
echo (integer)false ."_".intval(123.321);
1.2float 浮点数(通常简称实数)
//长度与C编译器的双精度数据类型的范围一样;
$f1 = 3.14;$f2 = -3.1400;$f3 = 0.314E1; //科学计数法$f4 = 314E-2;echo $f1."\n";echo $f2."\n";echo $f3."\n";echo $f4."\n";
//使用is_float()函数(或其别名is_real())来测试一个值是否是浮点数
if (is_float(3.14) && is_real(314E-2)) { echo "All is float\n";}//浮点值只是数的近似表示,所以要避免浮点值之间直接比较,通常比较前几位
if(intval(3.1415926 * 100) == (integer)(pi() * 1000)) { echo 'equal';}else { echo 'not equal';}
1.3boolean 布尔型
//和大多数编程语言一样,PHP定义了一些值为true,一些为false.
//在PHP中,以下值的计算结果(转换为boolean是的结果)为 false
- #关键字 false
- #整型 0
- #浮点数 0.00
- #空字符串(“”)和字符串 “0”
- #空数组
- #空对象
- #null值
class ccc{}$c;$c = new CCC;if($c){ echo '"$c" is alive'."\n"; unset($c);<span style="white-space:pre"></span>//销毁变量}$tmp;$arr = array();if( 0 || 0.00|| "" || "0" || null || false || $tmp || $arr || $c) { echo "someone's value is true";}else { echo "value: all false and \$c is death \n";}
1.4 string 字符串
//字符串是一个任意长度的字符序列,PHP中字符串字面量由单引号、双引号或界定符分隔:
$str1 = "str1"; //双引号内容经过PHP语法分析器解析$str2 = str1;$str3 = 'str3';//单引号不被解析echo "$str1\n<br>";echo "$str2\n<br>";echo $str3.'_$str3';echo "\n<br>".'\n<br>'; //字符串之间用 “.” 拼接//界定符 <<< (结束标识符必须单独另起一行,并且不允许有空格。在标识符前后不允许有其他符合或字符)$str4 = '显示该行内容';echo <<<std\n这和双引号没有什么区别\$str4的内容为:$str4 //双引号内关键字符必须用转义符std;//根据下标直接取得字符串具体位置字符echo string[0]."_"."string"[1]."_".'string'[2];echo "\n";//直接使用 == 比较两个字符串是否相等
if("aaa" == "aaa"){ echo "equal \n";}//判断一个变量是否为字符串
if (is_string("123455")){ echo "it is a string \n";}
2. 复合类型
2.1 array 数组
数组保存一组值,这些值可以由下标或一些标识性的名称(字符串)来确定关联
$tmpInt = 123;$arr1 = array(1, 12, $tmpInt, "双引号", '单引号', false, true);echo "$arr1[0]_$arr1[1]_$arr1[2]_$arr1[3]_$arr1[4]";echo "\n";echo "$arr1[5]_$arr1[6]"; //数组中 false同样不输出, true 转换成1echo $arr1[7];//越界不报错,也不存在任何值echo "\n";//若采用key-value方式定义,则只存在key值下标,不存在默认的数值下标$arr2 = array("int" => $tmpInt, "str" => "字符串");echo "$arr2[int]_$arr2[0]_$arr2[str]_$arr2[1]";echo "\n";//$arr3[0] = 123;$arr3[int] = 1234;echo "$arr3[0] _ $arr3[int]";
2.2 object 对象
PHP也支持面向对象编程(OOP)。
//类的定义class Student { public $name = ""; function setName($newName = NULL){ if(!is_null($newName)){ $this->name = $newName; } return $this->name; }}//类的创建以及方法调用$stu = new Student;$stu->setName("xyy");echo "Hi,$stu->name";
3. 特殊类型
3.1 resource资源类型
许多模块提供一些函数用于处理外部事物。
#数据库连接
#文件
#图片
#等等
每个活动的资源都有一个唯一的标识符,每个标识符对应着PHP内部结构表中的一个数字,这个表中报错了有关所有活动的资源信息。PHP在这个表中保存每个资源的信息,以及在这个代码中引用的资源数码。当最后一个引用资源销毁,创建该资源的扩展将被调用,用于释放内存、关闭连接等。
$con = mysql_connect("addr","name","password");if (is_resource($con)) { echo 'it is a resource';}
3.2 NULL 类型
NULL数据类型只有一个值。这个值可以通过不区分大小写的关键字NULL获得。
NULL值表示一个变量没有值(类似于Python中的None)
echo is_null($nulllll);
3.3 callable回调类型
回调是一些函数或对象的方法被另一些函数的调用,如call_user_func().
回调也可以通过create_function()方法和闭包创建
//下列示例代码取自PHP官方文档// An example callback functionfunction my_callback_function() { echo "Hello \n";}// An example callback methodclass MyClass { static function myCallbackMethod() { echo "Hi \n"; }}// Type 1: Simple callbackcall_user_func('my_callback_function');// Type 2: Static class method callcall_user_func(array('MyClass', 'myCallbackMethod'));// Type 3: Object method call$obj = new MyClass();call_user_func(array($obj, 'myCallbackMethod'));// Type 4: Static class method call (As of PHP 5.2.3)call_user_func('MyClass::myCallbackMethod');// Type 5: Relative static class method call (As of PHP 5.3.0)class A { public static function who() { echo "A\n"; }}class B extends A { public static function who() { echo "B\n"; }}call_user_func(array('B', 'parent::who')); // A/* * 示例二: */// Our closure$double = function($a) { return $a * 2;};// This is our range of numbers$numbers = range(1, 5);// Use the closure as a callback here to// double the size of each element in our// range$new_numbers = array_map($double, $numbers);print implode(' ', $new_numbers);
//判断是否为回调类型
$double = function($a) { return $a * 2;};if(is_callable($double)) { echo 'callable';}
- PHP的基本数据类型
- PHP第三课 PHP的基本数据类型
- PHP 支持8种基本的数据类型。
- PHP 八种基本的数据类型小结
- lua和php的基本数据类型
- PHP中基本数据类型的特点
- PHP 八种基本的数据类型
- PHP 八种基本的数据类型
- php基本数据类型
- 5. php 基本数据类型
- PHP基本数据类型
- php 基本数据类型
- 1、PHP基本数据类型
- PHP内核中的基本数据类型
- PHP基本语法和数据类型
- 1.php 入门软件配置,基本的数据类型
- Java的数据类型:基本数据类型、引用数据类型
- 我的php学习笔记(二)php基本数据类型、基本语法和基本运算类型及其应用
- CSS(一)
- 整合Jenkins+git+maven
- C#读取、保存二进制数据文件
- ALM无视兼容性访问
- Android APK反编译就这么简单
- PHP的基本数据类型
- 关于ajax提交中文参数乱码问题
- Android定时执行01
- LNK1104:无法打开文件"\.obj"
- CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar-Android M新控件
- Android 初学 往内存中写数据
- java S2SH项目框架Struts2.3+Spring3.1+Hibernate3.6框架搭建整合以及实例demo代码分享
- opencv学习四
- 性能测试体系之测试理论和方法