php中魔法常量_FILE_,_LINE_,__FUNCTION__用法
名称
描述
_FILE_
当前文件名
_LINE_
当前行号
_FUNCTION_
当前函数名
_CLASS_
当前类名
_METHOD_
当前方法名
所谓的魔法常量,并不是真的常量,而是根据场合去获取固定值的变量
代码如下 | 复制代码 |
<?php echo __FILE__; echo '<br>'; echo __LINE__; echo '<br>'; { echo __FUNCTION__; } funcTest(); ?> output D:AppServwwwBasic7demo15.php |
PHP数组的定义
代码如下 | 复制代码 |
…… |
在本代码片段的第一行,定义了一个一维数组$array,第二行的时候我们格式化输出了这个数组,结果是这样的:
代码如下 | 复制代码 |
array(3) { |
现在兄弟解释一下这个输出结果,首先这个数组的输出结果的第一行,
array(3)告诉我们这是个有三个元素的数组,
首先0号元素是一个长度为3的字符串(string(3))…
篇幅关系剩下两个就不说了吧,吼吼……,这说明什么呢?这说明在PHP中如果我们不为数组指定下标的话,那么他就自己自作主张的从零开始给我们弄一个下标出来——也就是PHP数组中的键名;再看看下边的例子:
代码如下 | 复制代码 |
…… $array = array('one',”hello”=>'two','three'); var_dump($array); |
……这一次我们定义数组的时候,为第二个元素指定了下标(从此以后,在本文中就叫做键名了,下标有点含糊不清!),第二个元素指定了键名(hello),咱们再看看输出结果:
代码如下 | 复制代码 |
array(3) { |
我想你也像我一样看到了一个很智能的现象,第一个元素的键名还是0——这个我们可以理解,因为我们没有指定,而PHP数组必须要有一个键名,PHP就自作主张从零开始创立了一个键名;第二个元素的时候,我们指定了键名,PHP就尊重我们的意见用了这个键名;复杂的事情在第三个元素,
第三个元素,看起来也很简单,我们没有指定键名,PHP自动的把最大整数键名加上1,作为了键名。但是大家想过没有,如果我们把第一个元素的键名修改为“-5”,第二个元素键名不变,结果会是什么呢?我们拭目以待:
代码如下 | 复制代码 |
…… $array = array(-5=>'one',"hello"=>'two','three'); var_dump($array); …… |
如果你想当然的认为,第三个元素的键名应该是-4,那么我告诉你在PHP4.3.0之前这个想法是对的,但是之后就错了,现在也就是PHP4.3.0之后的版本你将看到如下结果:
代码如下 | 复制代码 |
array(3) { |
是的第三个元素是从0开始的,也就是不管你的负数有多小,下一个元素要是让PHP来定义键名的话,那么他就是从0开始——记住这个地方说的是,在现有的键名中如果最大的依然是个负数,不管负数有多小,PHP也是从零开始下一个键名。
PHP数组的销毁很简单,像销毁其他变量一样。
销毁整个数组:unset($array)
销毁数组中的一个元素:unset($array[-5])
不管在现实生活中还是程序世界里,顺序总是很重要——真不敢想象一个没有顺序的世界会什么样子!PHP数组也不例外。PHP提供了四组针对PHP数组进行排序的函数,前三种都是针对一维数组的,我们先说这三种,第四种对多维数组的排序在下一篇文章中说,那个有点复杂。
第一组 :sort 和 rsort ,按照PHP数组键值的顺序asc和逆序desc进行排序,同时破坏原来数组的索引关系——其实是删除索引之后重新建立从0开始的数字索引。看一下例程:
代码如下 | 复制代码 |
<?php 看一下第一个输出结果,第一个输出: |
发现没有我们原来定义的索引a哪里去了?哪里去了?可以肯定的说是被他们无情的删除了,你要是对原来的索引关系并不在意的话,可以使用他们!
第二组函数:asort 和 arsort ,这两个函数就比较厉害一点了,只要他们可以保留数组原有的索引关系,把上例的sort 和 rsort 分别用这两个函数替换一下,看运行结果:
代码如下 | 复制代码 |
array(2) { ["a"]=> int(1) [0]=> int(2) } array(2) { [0]=> int(2) ["a"]=> int(1) } |
这个一看就明白的,不用说了吧!
第三组PHP数组排序函数:krsort 和 ksort 这两个不同于以上两组,这两函数是对键名进行排序的,大家可以把上例的函数替换成这两个,看看具体运行结果,这里也不说了,不然这个文章写的就太长了,怕有些兄弟没有耐心看到本文的重点,虽然重点就在下边!
通过自定义函数对PHP数组进行排序,有三个函数分别是:
uasort 通过自定义函数对PHP数组的键值进行排序,并且保留原来的索引关系。
uksort 通过自定义函数对PHP数组的键名进行排序,并且保留原来的索引关系。
usort通过自定义函数对PHP数组的键值进行排序,并且删除原来的索引关系,从零开始建立新的索引。
这个地方当然需要一个例子:
<!--p
//首先顶一个函数,这个函数需要接受两个参数,并且返回值是一定的
//第一个参数等于第二个参数的时候返回0,小于的时候返回-1,大于返回1
代码如下 | 复制代码 |
function cmp($a,$b){ 输出结果: |
,呵呵……是不是比不排序还乱呢?我们这里只是演示了使用的方法而已,具体你用到的时候自己搞吧!你要是不对这些数值进行操作之后再比较,例如我们这里:
$a+=1;
$b+=3;//改变这些值之后进行比较
在PHP手册中,一共定义了74个数组函数,涵盖了PHP数组的定义,赋值,排序,数值操作,比较,以及对数组的键名,键值反转……等等我们几乎能够想到的所有功能。有需要的同学可以去参考一下啊
7.3.1 Include的使用,可以包含相同的文件多次
代码如下 | 复制代码 |
<?php include 'demo1.php'; include 'demo1.php'; include 'demo1.php'; ?> |
输出结果如
代码如下 | 复制代码 |
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e |
7.3.2 include_once使用上和include没什么区别,但是调用多次只会包含相同的文件一次
代码如下 | 复制代码 |
<?php include_once 'demo1.php'; include_once 'demo1.php'; include_once 'demo1.php'; ?> |
结果如下
代码如下 | 复制代码 |
e10adc3949ba59abbe56e057f20f883e 7c4a8d09ca3762af61e59520943dc26494f8941b 3.14159265359 |
7.3.3 require() 语句包含并运行指定文件。
代码如下 | 复制代码 |
<?php require 'demo1.php'; require 'demo1.php'; require 'demo1.php'; ?> |
结果如下
代码如下 | 复制代码 |
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e |
7.3.4 require_once() 语句在脚本执行期间包含并运行指定文件.但是不重复包含相同的文件。
代码如下 | 复制代码 |
<?php require_once 'demo1.php'; require_once 'demo1.php'; require_once 'demo1.php'; ?> |
输出结果如下
代码如下 | 复制代码 |
e10adc3949ba59abbe56e057f20f883e 7c4a8d09ca3762af61e59520943dc26494f8941b 3.14159265359s |
7.3.5 include与require的区别
Include后面如果还有其他代码,当调用include出错时,后面的代码还会继续执行,但是require则不会。
Include在调用一个不存在的文件时,会给出警告,但是会继续执行后面的代码。
代码如下 | 复制代码 |
<?php include 'demo111.php';
echo('this is demo13.php'); ?> |
输出结果如下
代码如下 | 复制代码 |
Warning: include(demo111.php) [function.include]: failed to open stream: No such file or directory in D:AppServwwwBasic7demo13.php on line 2 Warning: include() [function.include]: Failed opening 'demo111.php' for inclusion (include_path='.;C:php5pear') in D:AppServwwwBasic7demo13.php on line 2 |
Require在调用一个不存在的文件时,会给出一个错误,并中止代码的执行。
代码如下 | 复制代码 |
<?php require 'demo111.php';
echo('this is demo14.php'); ?> |
输出结果如下
代码如下 | 复制代码 |
Warning: require(demo111.php) [function.require]: failed to open stream: No such file or directory in D:AppServwwwBasic7demo14.php on line 2 Fatal error: require() [function.require]: Failed opening required 'demo111.php' (include_path='.;C:php5pear') in D:AppServwwwBasic7demo14.php on line 2 |
ThinkPHP的官方文档没有给出ThinkAjax的使用方法,令很多初学者使用起来有些不便,今天学到这里,也碰到了很多问题,花时间深究下,做个学习笔记,希望能对初学者有帮助。
代码如下 | 复制代码 |
<script type="text/javascript" src="__PUBLIC__/js/base.js"></script> <script type="text/javascript" src="__PUBLIC__/js/prototype.js"></script> <script type="text/javascript" src="__PUBLIC__/js/mootools.js"></script> <script type="text/javascript" src="__PUBLIC__/js/Ajax/ThinkAjax.js"></script> <script type="text/javascript"> function checktitle() { ThinkAjax.send('__URL__/checktitle','ajax=1&title='+$('title').value,'','checkbox'); } </script> <form action="__URL__/insert" method="post" id="myform"> <table> <tbody> <tr> <td width="45" class="tRight">标题:</td> <td> <input type="text" id="title" name="title"> <input type="button" value="检查" onClick="checktitle();"> </td> <td> <span id="checkbox"></span> </td> </tr> </tbody> </table> </form> |
代码解释:
为“检查”按钮添加一个onclick事件,当按钮被点击时,调用checktitle()函数
在checktitle函数中,我们只用到了ThinkAjax对象中的成员方法send
send:function(url,pars,response,target,tips,effect){……}
可以看出ThinkAjax.send方法共有6个参数:
参数url:表示要将客户端浏览器传输过来的数据提交到服务器上的哪个方法进行处理,我这里提交给“当前模块下的checktitle方法”处理
参数pars:相当于ajax中的send方法中的参数string,表示要提交过去的数据,该参数只用于post方式传值
参数response:自定义的回调函数,如果定义了回调函数,则服务器处理完提交过去的数据之后,将会把处理后的数据交给回调函数进行处理。该回调函数有两个参数:①data②status 参数data:将服务器端处理后的数据赋给data 参数status:表示处理后的状态信息,1表示成功 0 表示失败
参数target:表示将处理后的数据在哪个地方进行显示(或输出),比如:我将此参数赋为:checkbox,表示处理后的数据会在id=”checkbox”的标签进行信息输出
当前模块下的checktitle方法的源代码:
代码如下 | 复制代码 |
<?php |
代码如下 | 复制代码 |
// 函数名:CheckPost($C_post) // 作 用:判断是否为合法邮编(固定长度) // 参 数:$C_post(待check的邮政编码) // 返回值:布尔值 // 备 注:无 //-----------------------------------------------------------------------------------
function CheckPost($C_post) { $C_post=trim($C_post); if (strlen($C_post) == 6) { if(!ereg("^[+]?[_0-9]*$",$C_post)) { return true;; }else { return false; } }else { return false;; } } ?> |
相关文章
- using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using 关键字还用来创建 using 语句 定义一个范围,将在此...2020-06-25
- 最新版下载: http://www.csdn123.com/uploadfile/2015/0428/20150428062734485.zip 概要 iScroll 4 这个版本完全重写了iScroll这个框架的原始代码。这个项目的产生...2016-05-19
- 这篇文章主要介绍了C++中cin的用法详细,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 这篇文章主要介绍了C#中的try catch finally用法,以实例形式分析了try catch finally针对错误处理时的不同用法,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
Pytorch 的损失函数Loss function使用详解
今天小编就为大家分享一篇Pytorch 的损失函数Loss function使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-02- 这篇文章主要介绍了C++变量,常量,数组和字符串,是C++入门学习中的基础知识,需要的朋友可以参考下,希望能够给你带来帮助...2021-10-21
- useState 通过在函数组件里调用它来给组件添加一些内部 state,React 会在重复渲染时保留这个 state,接下来通过一个示例来看看怎么使用 useState吧...2021-06-04
PHP中print_r、var_export、var_dump用法介绍
文章详细的介绍了关于PHP中print_r、var_export、var_dump区别比较以及这几个在php不同的应用中的用法,有需要的朋友可以参考一下 可以看出print_r跟var_export都...2016-11-25- 在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探讨php输入流php://input。 下面的例子摘取的是wordpres...2016-11-25
- 这篇文章主要介绍了Delphi常用关键字用法,包括了各个常用的关键字及其详细用法,需要的朋友可以参考下...2020-06-30
- 1、声明主键的方法: 您可以在创建表的时候就为表加上主键,如: CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name)); 也可以更新表结构时为表加上主键,如: ALTER TABLE tbl_name ADD PRIMARY KEY (in...2015-11-24
- 本文给大家汇总介绍了C#中的几种this用法,相信大家应该有用过,但你用过几种?以下是个人总结的this几种用法,欢迎大家拍砖,废话少说,直接列出用法及相关代码。...2020-06-25
- 目前在做window.onerror时上报js错误信息的事,整理下相关资料,需要的朋友可以参考下...2016-01-29
- 这篇文章主要介绍了C语言循环结构与时间函数用法,是C语言中非常重要的一个技巧,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了c#共有其中变量类型有:静态变量、实类变量、数组元素、数值参数、引用参数、输出参数和局部变量,需要的朋友可以参考一下...2020-06-25
- 本文章来给大家介绍一下在php中 ->与 ==>符号的用法与区别,有需要了解的朋友可尝试参考。 “->”(减号、右尖括号) 用于类中,访问类里的函数或对象,比如:...2016-11-25
- foreach()有两种用法 1: foreach(array as $value) { 表达式; } 这里的array是你要遍历的数组名,每次循环中,array数组的当前元素的值被赋给$value,...2016-11-25
php提示 Warning: touch() [function.touch]: Utime failed: Permission denied in错误
在使用php程序时提示Warning: touch() [function.touch]: Utime failed: Permission denied in错误,下面一起来看看此问题的解决办法。 使用timthumb.php出现Warni...2016-11-25- __FILE__在php是表示当前文件绝对路径哦,下面我们来看看简单的FILE的实例吧。 《?php echo __FILE__; ?> E:phpinfo.php 那么我们会看到很多cms中会这样写 dirname...2016-11-25
- sort() 方法用于对数组的元素进行排序。接下来通过本文给大家介绍Sort()函数的多种用法,对sort函数的用法相关知识感兴趣的朋友一起学习...2016-03-22