首页 > 代码库 > PHP之基本语法

PHP之基本语法

      人生最幸福的事之一就是,邻居家的wifi密码是123456789,于是回家在pad上也照样可以扯淡。任何语言都有自己的语法,这里只简单说些我觉得应该注意的地方。

      首先要明白,PHP是运行于服务器端的脚本语言,从上到下一步步执行。使用PHP写的代码是在服务器上就解析成html,配合js特效、css样式,再由浏览器翻译成页面展示出来的,也就是说当一个页面呈现在你面前时,对于不是链接性质的动作,如不会发送请求的点击等,已经与服务器无关了,对于一些好看的样式以及接下来伴随鼠标移动可能出现的漂浮、滚动、收起是在在浏览器端即刻运行的。

      PHP代码可以嵌套在html、js中,通常先由前端在该放数据的地方用一些固定数据,待前端页面做好后,再由PHP程序员去将固定数据替换成PHP变量,这个工作被称为套模板。因此,即便是后台数据发生更改也无关前端,变量的数据跟着改,即便前端页面改动,读出来还是那些数据。

      标准的PHP程序一般以<?php开头,可以以?>结束但不推荐这样做。于是打印hello world的程序可以是这样的

     <?php

              echo ‘hello world‘;

      对于开始和结束标记,是可以在PHP的配置文件中修改的,比如<% code %>或者短标记<? code ?>,但只有上一种最为常见、通用。

      PHP的注释单行时可用//或者#,#注释是一种shell脚本风格,在配置文件中用得有。多行注释用/*...*/,而PHP的关键字是大小写不敏感的,echo与EcHo效果一样。

      变量的命名以$开头,如$str=‘string‘。PHP的变量去类型也分整型、浮点、字符串、对象类型等,还有资源类型,类似于C的指针型,伪类型,它是泛指多种数据类型的类型表示。比如在同一个程序脚本中,可连续写:$s=1; $s=1.23; $s="string";,上一个变量的名字完全可以跟下一个一样,前面没有什么int、float等,也不会报错。这源于PHP是一门弱类型语言,它弱在变量不分类型的通通接收存储,而且可以重复命名,下一个值自动将上一个值覆盖掉。但是PHP还是有类型的区分的,在程序中也可以进行类型之间的自动或强制转换,比如null空类型必要时自动转换为bool型的false。

      可变变量是个有点小特别的东西,比如

      <?php    $a="something";  $b="a"; echo $$b;  //输出something

      注意到b前面有两个美元符号,右边的$b将被视为一个整体并取值,它的值是a,于是这个打印的变量实际是$a,再次视为整体并取得该变量的值,于是打印的是$a的值。这个东西很有用,在写程序时可以非常灵活的命名一些变量。

      类似于C++,PHP中也有引用,$b=&$a后,它俩就绑定到一块儿了,它们的改变的影响是相互的。在C++中引用之所以相互改变值,是共用着一块地址,但是对于PHP,好像不怎么提地址这种说法,PHP官网对此解释成别名,类似unix的文件名和文件本身文件名跟文件本身的内容是两个东西,我只了解一点Linux知识,多用户多任务,这是它的属性,因此在Linux下面可以边浏览文件边更改文件名,要是在win下面,请关闭该文件先。b是a的别名,它的值的改变会影响到a的内容,但是它们只是名字,与所拥有的内容无关,该这么理解?感觉还是糊涂的。

      PHP的常量的命名前面是没有$的,在类外面是define(‘CON‘, ‘host‘),类里边是const CON=‘host‘,CON就是该常量的名字。

      常量一般是描述不变的值,PHP中有许多预定义的常量,最典型的当属TRUE和FALSE,条件判断时经常用到,还有如PHP_VERSION,当前的PHP版本。

      魔术常量,听起来绝笔高大上的一个东西,魔术一般不是变的吗,怎么后边还加一常量,初次接触感觉有点别扭,实际上它还真的处于变与不变之中。比如魔术常量__LINE__,不变的是它肯定指的是行号,变的是,在哪一行它就被赋予那一行的行号,不同的行就是不同的值,当然还有很多其他的魔术常如__CLASS__、__FILE__、__METHOD__等。

      当然,PHP作为一个比较强大的语言,一般语言有的特质基本都有,表达式、位运算、流程控制等等。

             

PHP之基本语法