php unset()和null变量清除分析

 更新时间:2016年11月25日 15:09  点击:1890

unset ( mixed var [, mixed var [, ...]])
unset() 销毁指定的变量。注意在 php教程 3 中,unset() 将返回 true(实际上是整型值 1),而在 php 4 中,unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误


null 字节是变量为空 $t = ''; 变量有值,不过是空,isset()是true
null 常数是 $t = null; 变量没有值,连空都不是,isset()是false

<?php
$a = array(
'a' => 'a',
'b' => 'b'
);
$b = array(
'a' => 'a',
'b' => 'b'
);
$a['b'] = null;
unset($b['b']);
print('<pre>');
print_r($a);
print('<br />');
print_r($b);
print('</pre>');
?>

结果:

 

array
(
[a] => a
[b] =>
)
array
(
[a] => a
)

在php教程中获取表单与url传过来参数有很多方法 ,下面我们来介绍来下关于$_post 与$_request 获取提交表单代码原理与方法 。

$_post它在php只能获取由表单的 method="post" 时它才能接受到数据,如下代码

<form id="form1" name="form1" method="get" action="">
  <label>
  <input type="text" name="cn" value='获取到我了' />
  </label>
</form>

a.php页面

<?
if( $_post )
{
 echo $_post['cn'];
}
else
{
    echo '没有获取到值';
}
?>

得到的值是 获取到我了 ,如果我们把表单的method="get"那么就要用$_get来获取了,如下

echo $_get['cn'] ;//这样也有值哦。

那么我们的$_request怎么用呢,下面看

echo $_request['cn'];

//不管你表单的method是get或post或来自url参数传的值他都可以获取到哦。

那么他们有什么区别呢,根据我的总结$_post,$_get他们在效率要高到$_request,这个仔细想一下就明白了,因为前二个是有针对性的,自然不要判断是post,get的数据,页$_request他要判断提交过来的是以那种形式过来,这样就花费的一些时间哦。

注明:本站原创教程转载注明来源http://www.111cn.net/phper/php.html

//读取文件函数
<?
function readfromfile($file_name) {
if (file_exists($file_name)) {

$filenum=fopen($file_name,"r");
flock($filenum,lock_ex);
$file_data=fread($filenum, filesize($file_name));
rewind($filenum); //osphp.com.cn
fclose($filenum);
return $file_data;
}
}
?>

 

//写入文件函数
<?
function writetofile($file_name,$data,$method="w") {
$filenum=fopen($file_name,$method);

flock($filenum,lock_ex);
$file_data=fwrite($filenum,$data);
fclose($filenum);
return $file_data;
}
?>

php教程文件写操作
将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下:
  1、打开文件(文件操作函数:fopen)
  2、写入文件(文件操作函数:fwrite等)
  3、关闭文件(文件操作函数:fclose)
  下面通过文件读写操作代码实例教程来讲解
  基本的php文件写入操作函数fopen、fwrite、fclose应用教程
1、使用fopen函数打开文件,在应用fopen函数准备打开文件时,你首先需要明确:
  打开文件干什么?是读文件中的数据呢,还是将数据写入文件,亦或者读写文件?
  另外你需要考虑如果文件中已经存在相关数据,你是覆盖原有文件中的数据呢,还是仅仅将新数据添加至文件末尾
  这些问题涉及到php文件读写操作中的fopen函数中的文件模式的应用,fopen函数原型如下:
复制代码 代码如下:
fopen(filename,mode,include_path,context)

  调用文件操作函数fopen()时,通常需要传递两个或三个参数。
  filename:规定要打开的文件或url。可以指定文件的绝对路径,windows一般为c:,unix为/,通过url,你也可以打开远程文件。在这里写入的文件与php文件写入代码文件我放在同一个目录。
  mode:规定要求到该文件/流的访问类型。即打开文件的模式。
  include_path:可选项。如果需要在include_path中搜索文件的话,可以将该参数设为1或true。
  常用的fopen的文件操作模式说明
  ”r” - 以只读方式打开文件,从文件头开始读。
  ”r+” - 以读写方式打开文件。
  ”w” - 以写入方式打开文件,从文件头开始写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。
  ”w+” - 以读写方式打开文件,从文件头开始读写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。
  ”a” - 以写入方式打开,从文件末尾开始追加写。如果文件不存在则尝试创建。
  ”a+” - 以读写方式打开,从文件末尾开始追加写写或者读。如果文件不存在则尝试创建。
  注意:在进行文件读写操作时,你一定要确保打开的文件具有相应的读写权限,否则fopen会报错。你可以使用@来抑制产生的错误,然后合理处理错误。
  2、在使用文件操作函数fopen打开文件后,需要通过对变量赋值,然后写到$fp指向的文件指针中去,在上述php文件写入操作教程实例中,我使用的是一行一行存储,即换行储存,主要通过n作为换行分隔符。
  fwrite文件写入函数原型如下:
复制代码 代码如下:
fwrite(fp,string,length)

在这里你也可以使用文件写入函数fputs,其是fwrite的别名函数,功能与用法与fwrite一样。

  在文件写入函数fwrite中length是可选项,主要用来设定写入文件的最大字符数,如果设定了这个参数,fwrite会按设定的length,在指定文件中写入规定长度的字符。fwrite()返回写入文件的字符数,出现错误时则返回false。

  在文件写入操作完成后,需要关闭文件句柄,否则会占用系统资源等。可以使用fclose($fp)函数来完成这件事。文件关闭成功则返回true,否则返回false。

php教程验证请求页面来源
if( $_server['http_x_requested_with'] == 'xmlhttprequest' ) {
    echo 'ajax';
} else {
    echo 'normal';
}

jquery内部实现ajax的时候,已经加入了标识
jquery源码中是这样的:
xhr.setrequestheader("x-requested-with", "xmlhttprequest");

所以,在php中可以通过http_x_requested_with来判断,不需要另外实现 :)


下面看原理

<strong>在发送ajax请求的时候,我们可以通过xmlhttprequest这个对象,创建自

定义的header头信息</strong>
如果您使用的是原生的ajax方法,也就是未使用jquery或者其他js框架包装的ajax

方法,那么代码如下:

xmlhttprequest.setrequestheader("request_type","ajax"); 
通过jquery的$.ajax()方法,可以轻松地在发送ajax请求之前,创建我们自定义的

header头信息。

$.ajax({
        type                : "get",
        url                : base_url +

'php_check_ajax_request/get_user_list.html',
        beforesend         : function (xmlhttprequest) {
            xmlhttprequest.setrequestheader("request_type","ajax");
        },
        success         : function(data){
                $("#user_list").html(data);
                $tip.hide();
                $button.attr('disabled',true);
        }
});


在php获取时

if (isset($_server['http_request_type']) && $_server['http_request_type']

== "ajax"){//ajax提交
}else{//非ajax提交
}

[!--infotagslink--]

相关文章

  • PHP成员变量获取对比(类成员变量)

    下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
  • @CacheEvict 清除多个key的实现方式

    这篇文章主要介绍了@CacheEvict 清除多个key的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-13
  • C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
  • R语言 如何删除指定变量或对象

    这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • IDEA中的clean,清除项目缓存图文教程

    这篇文章主要介绍了IDEA中的clean,清除项目缓存图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-25
  • 解决vue的router组件component在import时不能使用变量问题

    这篇文章主要介绍了解决vue的router组件component在import时不能使用变量问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • Vue select 绑定动态变量的实例讲解

    这篇文章主要介绍了Vue select 绑定动态变量的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-23
  • 深入理解PHP变量的值类型和引用类型

    在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型,在使用的时候,需要注意这一点。看到网友在讨论PHP的&符号,要彻底理解它的用法,就有必要讨论一下变量的两种形式。PHP的变量在内存中是这样...2015-10-23
  • MYSQL事务回滚的2个问题分析

    因此,正确的原子操作是真正被执行过的。是物理执行。在当前事务中确实能看到插入的记录。最后只不过删除了。但是AUTO_INCREMENT不会应删除而改变值。1、为什么auto_increament没有回滚?因为innodb的auto_increament的...2014-05-31
  • java中String类型变量的赋值问题介绍

    下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。...2016-03-28
  • 详解ES6实现类的私有变量的几种写法

    这篇文章主要介绍了详解ES6实现类的私有变量的几种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-10
  • C#不同类型的成员变量(字段)的默认值介绍

    虽然C#编译器为每个类型都设置了默认类型,但作为面向对象的设计原则,我们还是需要对变量进行正确的初始化。实际上这也是C#推荐的做法...2020-06-25
  • python 实现循环定义、赋值多个变量的操作

    这篇文章主要介绍了python 实现循环定义、赋值多个变量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • Vue如何优雅的清除定时器

    定时器如果不及时合理地清除,会造成业务逻辑混乱甚至应用卡死的情况,这个时就需要清除定时器,本文就介绍了Vue如何优雅的清除定时器,感兴趣的可以了解一下...2021-07-22
  • Mysql索引会失效的几种情况分析

    索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)  注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 ...2014-06-07
  • 在JS中如何使用css变量详解

    这篇文章主要给大家介绍了关于如何在JS中如何使用css变量以及export之javascript关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2021-09-02
  • node.js 全局变量的具体使用

    这篇文章主要介绍了node.js 全局变量的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-15
  • Nest.js环境变量配置与序列化详解

    这篇文章主要给大家介绍了关于Nest.js环境变量配置与序列化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-21
  • C++变量,常量,数组和字符串详解

    这篇文章主要介绍了C++变量,常量,数组和字符串,是C++入门学习中的基础知识,需要的朋友可以参考下,希望能够给你带来帮助...2021-10-21
  • 轻松理解Javascript变量的相关问题

    这篇文章主要给大家介绍了关于Javascript变量的相关问题,文中给出了详细的介绍和示例代码,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。...2017-01-23