[php]serialize()函数啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[php]serialize()函数啥意思相关的知识,希望对你有一定的参考价值。

能给个简单的例子出来吗我想明白点

一个描述 php 数据的函数。返回值是一个字符串。有的时候为了把一些数据转为字符串存起来,但是希望保持数据原来有结构和内容。就要用到这个函数。

$a=array('data'=>"hi", 123);
$b=serialize($a);
echo $b; //这个就是描述过的数组但在这里是一个字符串而已

$c=unserialize($b); //把描述过的数据恢复
print_r($c); //还原成为 $a ,数组结构并没有丢失。
参考技术A serialize() 就是序列化一个数组或者对象什么的 吧他变成字符串的形式

PHP中函数前的感叹号是啥意思

【中文标题】PHP中函数前的感叹号是啥意思【英文标题】:What does an exclamation mark before a function really mean in PHPPHP中函数前的感叹号是什么意思 【发布时间】:2012-04-20 14:47:55 【问题描述】:

就像标题一样,PHP 中函数前的感叹号是什么意思?

比如下面的语句:

if (!stripos($haystack, $needle)) 

和这个一样:

if (stripos($haystack, $needle) === FALSE)

或者这个:

if (stripos($haystack, $needle) == FALSE)

任何澄清将不胜感激

【问题讨论】:

表示如果不相等或者结果为假。这是一种写代码的简短方法 @Radu 也许我的问题不够清楚,但我在问是否!在函数检查类型之前。 【参考方案1】:

函数前面的!与...相同

if (stripos($haystack, $needle) == FALSE) 

这是相同的,因为它是一个不检查类型的== 比较。

它被称为否定一元运算符。它翻转一个值的布尔值(如果需要,强制转换为布尔值)。

例如...

! 0;    // True
! 1 ;   // False
! '';   // True
! true; // False
!! 0    // False 

!! 技巧在没有(bool) 演员表的语言中很方便。通过翻转一个值两次,您可以获得其原始值的布尔版本。

【讨论】:

谢谢,这是我正在寻找的说明 @alex,你怎么知道它在需要时强制转换为布尔值?文档是不是故意的? php.net/manual/en/language.operators.logical.php @Pacerier 它说 如果 $a 不是 TRUE 则为 TRUE。 @alex,为什么 "is not TRUE" 涉及强制? "is not TRUE" 不就是 !== 吗?【参考方案2】:

!将进行价值比较,所以它与我认为的第二个比较相同。因为 !会将 false、0、null 捕获为 false,并且它们与您看到的类型不同。 "" 可能是一个例外,因为我总是使用 trim()!="" 来比较字符串。我不知道。

【讨论】:

..感谢您的赞赏。我想在这里提供帮助。我的回答对你没有意义吗? 你的回答很好,但亚历克斯的回答对我来说更容易理解。顺便提一句。不是我投了你的票。 不,我正在评论另一条评论,抱歉。我写完后他删除了。

以上是关于[php]serialize()函数啥意思的主要内容,如果未能解决你的问题,请参考以下文章

金融里 time-series momentum 是啥意思

用 & 符号启动 PHP 函数是啥意思?

PHP中函数前的感叹号是啥意思

php函数serialize()与unserialize()

php函数参数中的&符号是啥意思

php的serialize()函数和unserialize()函数