首页 后端开发 php教程 PHP 6:PHP 基本数据类型

PHP 6:PHP 基本数据类型

Jun 23, 2016 pm 02:29 PM

本章将介绍PHP基本类型。
相信我们已经熟悉了C/C++,C#或者Java里的任意一种语言。本章会以C#为比较语言。
OK,如果你想学PHP,你最先考虑的是什么呢?
我相信肯定是下面的几个问题:
PHP有哪几种数据类型,它们和其他语言有什么区别呢? 一种语言对于数据类型,有强类型和弱类型之分,PHP属于哪一种呢? PHP有什么独特的地方呢? 基于上面想法,我将会一一阐述。
还是先把上一篇文章所引用的代码拿出来吧。

PHP实例代码
 1 function display_user_urls($url_array)
 2 {
 3   // display the table of URLs
 4 
 5   // set global variable, so we can test later if this is on the page
 6   global $bm_table;
 7   $bm_table = true;
 8 ?>
 9   

10   


11   
12   13   $color = "#cccccc";
14   echo "";
15   echo "";
16   if (is_array($url_array) && count($url_array)>0)
17   {
18     foreach ($url_array as $url)
19     {
20       if ($color == "#cccccc")
21         $color = "#ffffff";
22       else
23         $color = "#cccccc";
24       // remember to call htmlspecialchars() when we are displaying user data
25       echo "";
26       echo "";
28       echo ""; 
29     }
30   }
31   else
32     echo "";
33 ?>
34   
BookmarkDelete?
".htmlspecialchars($url)." 27              value=\"$url\">
No bookmarks on record
 
35   

36 37 } 逐一讨论吧。
PHP有哪几种数据类型,它们和其他语言有什么区别呢?       PHP支持8种原始的数据类型。
其中包括4种标量类型:
Integer Float String Boolean 同时包括2种复合类型:
Array Object 但是还有2种特殊的类型:
NULL Resource 写到此,你可能心里开始犯嘀咕:那么它们是在程序里面怎么表示呢?好的,让我们先看看前面6种数据类型吧。还有2种类型后面解释。
Integer:int Float:float String:string Boolean:bool 其实上面的和C# 没有多大区别,这里不多说了。
Array数据类型还是比较特殊的,因为在C#语言里就没有这种数据类型,其他语言,C/C++,Java也是没有的。你可以把他当成C#里的数组看待就可以了。另外,看看PHP官方网站上是怎么说的。
   PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个 PHP 数组作为值,也可以很容易地模拟树。
看看Array的用法吧。我们可以新建一个Array对象,由于Array是key和value映射的。所以Array支持一定数量以分号分隔的值对。给个例子,代码如下:

php
$arr   =   array ( " Hello "   =>   " Word " ,   12   =>   true );

echo   $arr [ " Hello " ];  //  bar
echo   $arr [ 12 ];     //  1
?>  

请记住一点 :key 可以是整型或者字符串。如果键名是一个整型的标准表达方法,取整,如果是float型,转化为整型。与之对比,值则可以为任何值。
如果你想实现多维数组怎么办?在PHP没有提供类系与C#的多维数组的写法,为什么呢?我的观点是这里的数组早已经不是C# 等语言里的单纯的数组了。它已经扩展了数组,可以哈希表,字典等等。所以提供多维数组确实没有必要。虽说如此,但是可以实现类似的功能,如下代码:

php
$arr   =   array ( " somearray "   =>   array ( 6   =>   5 ,   13   =>   9 ,   " a "   =>   42 ));

echo   $arr [ " somearray " ][ 6 ];     //  5
echo   $arr [ " somearray " ][ 13 ];   //  9
echo   $arr [ " somearray " ][ " a " ];   //  42
?>  

既然讨论到这里,你可能想想知道如何新建或删除一个数组对象。什么都不说了,看看下面代码:

 1  ? php
 2  $arr   =   array ( 5   =>   1 ,   12   =>   2 );
 3  $arr []  =   56 ;     //  相当于 $arr[13] = 56;
 4                  //因为第二个元素的键是12       
 5  $arr [ " x " ]  =   42 ;  //  创建一个新元素,且键为字符串
 6                  //"x",值位42.
 7  unset ( $arr [ 5 ]);  // 删除键位5的元素。
 8  unset ( $arr );     //  删除整个数组
 9                  //unset()是一函数,从字面的意思上                      
                   //看也知道是撤销设置
10  ?>

怎么样,基本上了解了Array了吧。
至于 Object嘛,感觉和C#里的没什么区别。

NULL 对象就有意思了,这个在C# 里是没有的,C#倒是有个null。

特殊的 NULL 值表示一个变量没有值,NULL 类型唯一可能的值就是 NULL。注意了 NULL 类型是 PHP 4 引进的。

在下列情况下一个变量被认为是 NULL:

被赋值为 NULL。

尚未被赋值。

被unset()。

简单吧,原来把C#里的null作为对象了。聪明的家伙们。
既然如此,我们如何判断某个变量为 NULL ,相当的简单,调用is_null(),如何将某个变量设为 NULL ,一种方法是调用unset().

看看 Resource吧,称为资源。它保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 由于资源类型变量保存为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。 由于 PHP4 Zend 引擎引进了资源计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。由于此原因,很少需要用某些 free-result 函数来手工释放内存。垃圾回收?
除了这些还有其他的吗?当然是肯定的。还有一些伪类型:
         mixed
           mixed 说明一个参数可以接受多种不同的(但并不必须是所有的)类型。

           例如 gettype可以接受所有的 PHP 类型,str_replace可以接受字符串和数组。

        number
            number 说明一个参数可以是 int或float.

        callback
          有些诸如 call_user_function() 或 usort() 的函数接受用户自定义的函数作为一个参数。Callback 函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。

2 .一种语言对于数据类型,有强类型和弱类型之分,PHP属于哪一种呢?

             PHP是弱类型的。在PHP里,变量的类型是赋给它们的值决定的。如果赋的值是整型,那么变量就是整型,如果是字符串,就是字符串型。看如下代码:

php
  $name = " your name " ; // name位string类型。
  $total = 12 ;         // total为整型
?>

            那么如何转型呢,我觉得和C# 差不多的。就不赘述了。
       
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

会话如何劫持工作,如何在PHP中减轻它? 会话如何劫持工作,如何在PHP中减轻它? Apr 06, 2025 am 12:02 AM

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

描述扎实的原则及其如何应用于PHP的开发。 描述扎实的原则及其如何应用于PHP的开发。 Apr 03, 2025 am 12:04 AM

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

如何在系统重启后自动设置unixsocket的权限? 如何在系统重启后自动设置unixsocket的权限? Mar 31, 2025 pm 11:54 PM

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

在PHPStorm中如何进行CLI模式的调试? 在PHPStorm中如何进行CLI模式的调试? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

如何用PHP的cURL库发送包含JSON数据的POST请求? 如何用PHP的cURL库发送包含JSON数据的POST请求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

See all articles