PHP中的函数
请教各位一个问题哈:我在走读PHP的一个MVC框架thinkphp代码时,经常看到这个函数C(……),例如:C('URL_PATHINFO_DEPR')请问这个C函数是做...
请教各位一个问题哈:
我在走读PHP的一个MVC框架thinkphp代码时,经常看到这个函数C(……),例如:C('URL_PATHINFO_DEPR') 请问这个C函数是做什么用的?我找了thinkphp的所有文件也没找到这个C函数。恳请各位高手解答!谢谢! 展开
我在走读PHP的一个MVC框架thinkphp代码时,经常看到这个函数C(……),例如:C('URL_PATHINFO_DEPR') 请问这个C函数是做什么用的?我找了thinkphp的所有文件也没找到这个C函数。恳请各位高手解答!谢谢! 展开
展开全部
ThinkPHP中 C(),D(),S()
1.在具体的Action方法里面,可以用C()对某些参数进行动态配置,主要指那些还没有使用的参数。具体用法如下:
C('参数名称'); //获取已经设置的参数值
C('参数名称','新的参数值'); //设置新的值
2.D()函数的使用:
先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。例如:
先在"你的项目"\Lib\Model下建立一个名为UserModel.class.php的PHP脚本,内容如下:
class UserModel extends Model{}
然后,无需增加任何属性和方法,就可以进行如下操作:
$User = D("User"); //实例化User对象,User是你在数据库建立的一个名为"前缀_user"的数据表
也可以用$User = new UserModel()代替,进行实例化对象的操作。
实例化之后,就可以对数据进行增删查改等一系列操作了,如:
$User->find(1); //查找主键为1的记录
3.S()函数的使用:
ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用
不同的缓存方式的时候并不需要关注具体的缓存细节。如:
S('data',$Data); //使用data标识缓存$Data数据
S('data',$Data,3600); //缓存$Data数据3600秒
$Data = S('data'); //获取缓存数据
1.在具体的Action方法里面,可以用C()对某些参数进行动态配置,主要指那些还没有使用的参数。具体用法如下:
C('参数名称'); //获取已经设置的参数值
C('参数名称','新的参数值'); //设置新的值
2.D()函数的使用:
先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。例如:
先在"你的项目"\Lib\Model下建立一个名为UserModel.class.php的PHP脚本,内容如下:
class UserModel extends Model{}
然后,无需增加任何属性和方法,就可以进行如下操作:
$User = D("User"); //实例化User对象,User是你在数据库建立的一个名为"前缀_user"的数据表
也可以用$User = new UserModel()代替,进行实例化对象的操作。
实例化之后,就可以对数据进行增删查改等一系列操作了,如:
$User->find(1); //查找主键为1的记录
3.S()函数的使用:
ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用
不同的缓存方式的时候并不需要关注具体的缓存细节。如:
S('data',$Data); //使用data标识缓存$Data数据
S('data',$Data,3600); //缓存$Data数据3600秒
$Data = S('data'); //获取缓存数据
展开全部
小,而是在比较值相同之后,比较key是否相等
比如compare如果这样写:
function compare($a, $b) {
return 0;
}
表示认为无论什么键都相等,返回的结果是
Array
(
[b] => brown
[0] => yellow
[2] => red
)
-----
function compare($a, $b) {
return 1;
}
认为无论什么样的键都不相等,返回的结果是空数组array();
---------------------------
这个就涉及他内部的算法了因为涉及混合数组的算法太复杂,用一个简单的例子举例:
<?php
$arr1 = array('a'=>1, 'b'=>2, 'c'=>3);
$arr2 = array('a'=>1, 'B'=>2, 'C'=>3);
$arr3 = array('a'=>1, 'b'=>2, 'c'=>3);
$arr4 = array('A'=>1, 'b'=>2, 'C'=>3);
function compare($a, $b) {
if($a === $b) {
return 0;
} else
return 1;
}
print_r(array_intersect_uassoc($arr1,$arr2, 'compare'));
print_r(array_intersect_uassoc($arr3,$arr4, 'compare'));
?>
会发现,第一次比较会返回 a=>1 第二次比较会是空
这个特殊的现象跟他内部算法有关,这个函数会做三件事:
对$arr1调用回调函数从小到大冒泡排序
对$arr2也排序
然后比较$arr1的第一个键和$arr2的第一个键,如果相等,比较值,如果不等,比较$arr1的第一个键和$arr2的第二个键,一直到循环结束。
对$arr1和$arr2最开始比较的是 a, a 调用compare(a,a) 返回是0, 所以认为两个键值相等。
对$arr3和$arr4,调用 compare(a,A) 不等, 调用compare(a, b)不等,调用compare(a, C)不等, 就退出循环了, 所以返回空
你问的这个问题也是这个原因
写成
function compare($a, $b) {
if($a > $b)
return 1;
else if($a < $b)
return -1;
else return 0;
}
就会发现yellow了
比如compare如果这样写:
function compare($a, $b) {
return 0;
}
表示认为无论什么键都相等,返回的结果是
Array
(
[b] => brown
[0] => yellow
[2] => red
)
-----
function compare($a, $b) {
return 1;
}
认为无论什么样的键都不相等,返回的结果是空数组array();
---------------------------
这个就涉及他内部的算法了因为涉及混合数组的算法太复杂,用一个简单的例子举例:
<?php
$arr1 = array('a'=>1, 'b'=>2, 'c'=>3);
$arr2 = array('a'=>1, 'B'=>2, 'C'=>3);
$arr3 = array('a'=>1, 'b'=>2, 'c'=>3);
$arr4 = array('A'=>1, 'b'=>2, 'C'=>3);
function compare($a, $b) {
if($a === $b) {
return 0;
} else
return 1;
}
print_r(array_intersect_uassoc($arr1,$arr2, 'compare'));
print_r(array_intersect_uassoc($arr3,$arr4, 'compare'));
?>
会发现,第一次比较会返回 a=>1 第二次比较会是空
这个特殊的现象跟他内部算法有关,这个函数会做三件事:
对$arr1调用回调函数从小到大冒泡排序
对$arr2也排序
然后比较$arr1的第一个键和$arr2的第一个键,如果相等,比较值,如果不等,比较$arr1的第一个键和$arr2的第二个键,一直到循环结束。
对$arr1和$arr2最开始比较的是 a, a 调用compare(a,a) 返回是0, 所以认为两个键值相等。
对$arr3和$arr4,调用 compare(a,A) 不等, 调用compare(a, b)不等,调用compare(a, C)不等, 就退出循环了, 所以返回空
你问的这个问题也是这个原因
写成
function compare($a, $b) {
if($a > $b)
return 1;
else if($a < $b)
return -1;
else return 0;
}
就会发现yellow了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询