浏览模式: 普通 | 列表
$GLOBALS 不定义变量,只是说明某变量是全局变量,那个变量是其它地方定义了的。如果在函数里面不使用$GLOBALS什么的变量都是局部变量,只有本函数内有效。
$GLOBALS['key'] = value;指的的是PHP当前页面的全局变量$key = value的引用,此值可以在PHP流程的任意地方改变,改变的是该全局变量,真正的全局引用。

golbal $key = value;一般用在函数内部,意思是申明变量$key,该变量是对外部$key的引用,值的改变会同时改变外部变量的值。效果和函数定义的时候采用&符号一致。


define定义的常量其实也没有定义变量(分配内存),这个东西类似C语言的#define、PASCAL语言的const,本质上是宏。

static定义的静态变量和PASCAL语言的静态变量概念意义,本质是局部变量,但是不在...

阅读全文…

php动态变量关于数组的处理

[ 2011-06-03 10:31:15 | 作者: admin ]
<?php
$arrNameA=array();
$arrNameB=array();

$arr_curent='arrNameA';

${$arr_curent}[] = "00";
${$arr_curent}[] = "11";
${$arr_curent}[] = "22";
${$arr_curent}[] = "33";

var_dump(${$arr_curent});
?>

PHP初学者头疼问题总结

[ 2011-06-03 08:41:15 | 作者: admin ]
【1】页面之间无法传递变量 get,post,session在最新的php版本中自动全局变量是关闭的,所以要从上一页面取得提交过来得变量要使用$_GET['foo'],$_POST['foo'],$_SESSION['foo']来得到
当然也可以修改自动全局变量为开(php.ini改为register_globals = On);考虑到兼容性,还是强迫自己熟悉新的写法比较好。
================================
PHP中的超全局变量
从PHP 4.2.0 开始,register_globals 的默认值为 off,这样一来,以前的很多可以直接使用的变量,如 $PHP_SELF 或者你设定的SESSION变量都不能用 “$变量名”的形式访问了,这可能会给你带来很多不变,但却有助于安全性的提高。访问这些变量,你需要使用PHP 超全局变量,如下:
...

阅读全文…

PHP缓存数组的实现

[ 2011-06-03 08:24:43 | 作者: admin ]
将php文件中经常用到,并且需要经常多次查询数据库的,用到缓存将可以很好的降低内存消耗,加快访问速度。

这里讨论的是使用serialize将数组转成字串,存储在文件中,使用的时候再将字串转换成数组,为什么不用文件直接存储数组,这也是可以的。

PHPWind,discuz就是这么干的,但这里就不讨论了。

通过serialize,unserialize,fread实现存储和释放数组的过程,代码如下:

function array2file($file,$array){
         $fp = fopen($file, "wb");
         fwrite($fp, serialize($array));
         fclose($fp);
}

function file2array($file){
         if(!file_exists($file)){
...

阅读全文…
实现原理:用padding设置图片内边距形成一个边框的效果,用用border设置图片的边框。这样就形式了双边框的效果。可以设置成padding和border相同的宽度,这样出出来的双边框效果比较对称。不过也可以设置边框细一点或内边距小一些,当然你也可以改变背景颜色的方法改变padding形成的边框效果的颜色。希望大家能灵活运用。
<style type="text/css">
body {text-align: center; font-family:Verdana;}
.img1 { padding:5px; border:5px solid #333;}
.img2 { padding:5px; border:1px solid #333;}
.img3 { padding:5px; border:5px solid #333; background: #c33;}
...

阅读全文…
用ajax制作的一个级联选择,二级随一级联动,在修改的情况下使用下面代码
document.getElementById("louyuming").options[0].selected=true;

function jsSelectIsExitItem(objSelect, objItemValue) {
          var isExit = false;
          for (var i = 0; i < objSelect.options.length; i++) {
                 if (objSelect.options[i].value == objItemValue) {
                    isExit = true;
                    break;
                 }
          }
...

阅读全文…

AJAX php 二级级联菜单实现代码

[ 2011-05-30 16:26:22 | 作者: admin ]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script type="text/javascript">
var xmlHttp;
var a =new Array();
function createXMLHttpRequest(){
if(window.ActiveXObject){
...

阅读全文…