仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4173|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网页编程之PHP变量的利用

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:28:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表