老尸 发表于 2015-2-16 00:28:54

PHP网页编程之PHP变量的利用

那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢?变量                   PHP变量的利用



                  作者:sports982002-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.". nice meet you I am".$_SERVER;
      // 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这样的模板引擎,

不帅 发表于 2015-3-17 03:10:21

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

仓酷云 发表于 2015-3-17 21:08:23

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

老尸 发表于 2015-3-17 23:11:37

基础有没有对学习php没有太大区别,关键是兴趣。

飘灵儿 发表于 2015-3-20 20:48:05

基础有没有对学习php没有太大区别,关键是兴趣。

蒙在股里 发表于 2015-3-24 00:06:10

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

飘飘悠悠 发表于 2015-4-4 11:36:06

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。

乐观 发表于 2015-4-7 22:32:44

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

活着的死人 发表于 2015-5-1 04:15:10

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

分手快乐 发表于 2015-5-2 03:10:07

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

金色的骷髅 发表于 2015-5-6 09:09:37

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

海妖 发表于 2015-6-17 11:24:11

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。

小女巫 发表于 2015-6-18 21:01:49

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

精灵巫婆 发表于 2015-7-17 18:24:35

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

谁可相欹 发表于 2015-7-18 22:20:04

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

只想知道 发表于 2015-7-19 10:51:38

当然这种网站的会员费就几十块钱。
页: [1]
查看完整版本: PHP网页编程之PHP变量的利用