仓酷云

标题: PHP网页编程之PHP变量的利用 [打印本页]

作者: 老尸    时间: 2015-2-16 00:28
标题: PHP网页编程之PHP变量的利用
那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢?变量                   PHP变量的利用



                    作者:sports98  2002-8-13


    良多伴侣在编写PHP法式的时分有时分对变量总有着不克不及肯定的成绩,并且也有良多成绩就是由于
变量的处置不妥所酿成的。这里就PHP变量体系说以下,缺乏的地方还望指教。

    PHP的变量分为全局变量与部分变量。

    作甚全局变量?

    学过C/JAVA/C++之类的伴侣必定懂得main(){}内声明的变量所达的区域了~,而PHP为注释性语句并不是
编译言语,咱们也晓得PHP不存在main(){}主体,从何声明?其实PHP页面自己就是个main(){}只需是在页面内
而非在函数内声明的变量咱们都称其为全局变量...例如:

<?php
    $int_a=0;            //初始全局变量$int_a将其赋值为0
    echo "全局变量:".$int_a;    //打印全局变量

    function child_a(){        //部分变量的利用
        $int_a=0;        //这里是部分变量,固然与全局变量名不异但此变量仅在child_a内可见
        echo "From child_a:".$int_a;
    }
   
    function child_b(){        //挪用全局变量
        global $int_a;        //声明挪用全局变量
        echo "From child_b:".$int_a;
    }
?>


从下面的一个例子,咱们可以很复杂了然的看分明PHP中全局与部分变量之间的差距...

    另咱们乐意的是PHP供应了其他的CGI言语的办事器全局变量...这些变量当页面调入的时分就已由体系主动生成

    这些全局变量包括在

    $_SERVER($HTTP_SERVER_VARS)        (办事器供应的相干变量办事)    PHP4.1.0
    $_ENV($HTTP_ENV_VARS)            (保留相干情况变量)    PHP4.1.0
    $_POST            (保留利用Form post办法提交的变量)    PHP4.1.0
    $_GET            (保留利用Form GET/URI办法提交的变量)    PHP4.1.0
    $_COOKIE        (保留利用页面取得的COOKIE数据)    PHP4.1.0
    $_SESSION        (保留站点内会话变量)    PHP4.1.0
    $HTTP_POST_VARS        (同$_POST,按linuxforum.net一帖对此的评论是$_POST的效力比其更高)    PHP4.1.0
    $HTTP_GET_VARS        (同$_GET,评论同上.)    PHP4.1.0
    $_REQUEST        (包括了$_GET,$_POST,$_COOKIE,$_FILES)    PHP4.1.0
    $_FILES            (严厉的说此变量已包括在$_POST和$HTTP_POST_VARS,次要是取得form post体例提交的file变量)    PHP4.1.0
    $GLOBALS        (保留一切全局变量的数组)    PHP3.0.0
    $php_errormsg        (此全局变量必需在php.ini中将其翻开:track_error=on)

   
    以上变量为体系全局变量,您不需求声明他们就能够直接利用,固然了,您的PHP版本必定要高于或等于他们前面所标注的版本号。
    在利用这些变量的时分,您无需用global关头字来声明他们...


<?php
    function g_p(){
        echo "Welcome ".$_SERVER[REMOTE_ADDR].". nice meet you I am".$_SERVER[SERVER_ADDR];
        // Welcome 192.168.0.3. nice meet you I am 192.168.0.1
    }
?>



    自界说变量,PHP供应的自界说变量其实不象编译型语系那样,需求先声明。而是直接利用,但假如一个不公道的法式变量的混乱无规
我想过个几天后或许你本人都不会读分明的~,假如您只需求一个过度变量,您可以随便的去声明他只需不与其他变量产生抵触,并且合适定名划定规矩
用后建议利用unset将其删除..


    PHP还供应了变量的变量这个概念

    就如之前有人发帖问过这个成绩
    上面将这个表达一下~,其实这是个最复杂的变量的变量办法,我想假如对C里的指针和地址对照熟习的人了解这个会很快的.

<?php
$vvv="int_a";
$int_a="vvv";
echo "vvv is:".$vvv;        //vvv is:int_a
echo "int_a is:".$int_a;    //int_a is:vvv
echo '$$vvv is:'.$$vvv;        //$$vvv is:vvv
echo '$$int_a is:'.$$int_a;    //$$int_a is:int_a   
?>


    另:在一入手下手接触PHP的时分被他的所输便可得(就是提交变量可以直接利用起name标志的值来做为变量利用.),跟着工夫的推移,收集的开展
PHP.net开辟小组发明在这里居然有很多人在做文章。例:

<?php
for($int_a;$int_a<100;$int_a++){
    echo "I am $int_a \r\n<br>";
}
?>

以上法式按逻辑来讲,法式象体系请求一新变量$int_a因为未赋默许值,体系将默许给$int_a赋于0,此时应当打印100行 i am ...
然而假如有人传递过去这个变量呢???好比说http://url/count.php?int_a=99此时体系将只打印一行。我这里只是复杂的说一下
假如这个法式是操作你的数据库,或操作你的秘密性文件,你所需求的是公有变量而非外界传递过去的变量...,我团体感觉PHP开辟小组
在这个成绩上的处置是自创了编译言语的长处..

不外不必忧虑假如你感觉页面不受外界变量的影响,并且临时也不必进步到这个平安度的话您可使用
if($_GLOBAL_ARRAY){//判别是不是存在全局变量的数组
    extract($_GLOBAL_ARRAY,EXTR_PREFIX_SAME,"_global_array");    //将数组内变量导入到以后的变量表内,假如产生抵触则将全局变量前加上_global_array前缀
}
因为PHP小组对体系的平安进步,因而分收回来的版本自php4.2.X后已默许将register_global选项设置为OFF,假如您不需求利用的话可以将其翻开ON

    总结:

        PHP是个很优异的WEB CGI言语,PHP的收费与良多数据库的严密联合,他可以完成其他办事器剧本所完成的特定办事,ASP所供应的两头件,在PHP
中可以经由过程dl()进或利用静态扩大将其加载进PHP。而PHP的变量也会愈来愈完美...


                                            学有所限,若有不正还请指教。
          也或许是因为我还没有真正的学到深处吧,说实在的,PHP中的很多高级点的应用,如PHP类、PHP函数基本还是不懂吧!
作者: admin    时间: 2015-2-16 04:49
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: 再现理想    时间: 2015-3-4 23:52
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 山那边是海    时间: 2015-3-11 21:31
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: 不帅    时间: 2015-3-17 03:10
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 仓酷云    时间: 2015-3-17 21:08
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: 老尸    时间: 2015-3-17 23:11
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 飘灵儿    时间: 2015-3-20 20:48
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 蒙在股里    时间: 2015-3-24 00:06
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者: 飘飘悠悠    时间: 2015-4-4 11:36
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 乐观    时间: 2015-4-7 22:32
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 活着的死人    时间: 2015-5-1 04:15
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 分手快乐    时间: 2015-5-2 03:10
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 金色的骷髅    时间: 2015-5-6 09:09
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
作者: 海妖    时间: 2015-6-17 11:24
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 小女巫    时间: 2015-6-18 21:01
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
作者: 精灵巫婆    时间: 2015-7-17 18:24
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 谁可相欹    时间: 2015-7-18 22:20
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
作者: 只想知道    时间: 2015-7-19 10:51
当然这种网站的会员费就几十块钱。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2