人生最幸福的事之一就是,邻居家的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.ini中命令为short_open_tag,默认值为off,表示关闭,但只有上一种最为常见、、简洁和通用。

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,相当于echo $a;

注意到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__、__DIR__、__METHOD__、__FUNCTION__、__NAMESPACE__等,它们的命名方式都一样,区别__METHOD__特指类中的方法名,__FUNCTION__指一般的方法名。

当然,PHP作为一个比较强大的语言,一般语言有的特质基本都有,表达式、位运算、流程控制等等,表达式如加($a+$b)、减、乘、除、模运算,位运算如位与($a & $b)、位或、位异或,流程控制方面,如if...elseif、for、while、do...while、switch...case...default...break、continue等等,还有个foreach循环数组用的,非常方便,而且它的选择语句的elseif可以挨着写

if(){

}

elseif(){

}

else{

}

综上,只起到一个简单的概括回忆作用,详细得看资料书。

PHP之基本语法的更多相关文章

  1. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  2. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  3. 探索C#之6.0语法糖剖析

    阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...

  4. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  5. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  6. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  7. C#语法糖大汇总

    首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...

  8. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

  9. Flex 布局教程:语法篇

    作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...

  10. postgresql 基本语法

    postgresql数据库创建/修改/删除等写入类代码语法总结: 1,创建库 2,创建/删除表 2.1 创建表 create table myTableName 2.2 如果表不存在则创建表 crea ...

随机推荐

  1. 《GettingThingsDone》--GTD学习笔记(三)-GTD的三个关键原则

    原则一:养成收集的习惯 1.收集习惯给个人带来的好处     在收集过程中你会出现焦虑和解脱,难以招架和控制良好的情绪. (1)消极情绪的来源     要做的事情总比你能做的事情多,要做的事情太多并不 ...

  2. C++设计模式——策略模式

    策略模式 在GOF的<设计模式:可复用面向对象软件的基础>一书中对策略模式是这样说的:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.该模式使得算法可独立于使用它的客户而变化 ...

  3. centos7 rabbitmq系统部署

    CentOS7 1.安装系统 基础设施服务器:Java平台.Linux远程管理.开发工具 2.打开网络连接: (1)cd  /etc/sysconfig/network-scripts/  #进入网络 ...

  4. hdu4436-str2int(后缀数组 or 后缀自动机)

    题意:给你一堆字符串,仅包含数字'0'到'9'. 例如 101 123 有一个字符串集合S包含输入的N个字符串,和他们的全部字串. 操作字符串很无聊,你决定把它们转化成数字. 你可以把一个字符串转换成 ...

  5. inferred 和 freefrom

    “Inferred” is the default setting for storyboards and it means the scene will show a navigation bar ...

  6. ios引导页 设定以及 图片尺寸

      iphone的屏幕尺寸有着几种: iphone 4/4s: 3.5 寸 分辨率:640X960 高宽比 640/960 = 1.5 iphone 5/5c/5s:4 寸 分辨率:640X1136  ...

  7. SPOJ - OTOCI LCT

    OTOCI Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/problem/viewProblem. ...

  8. linux下web压力测试工具ab使用及详解

    APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下.格式: ./ab [options] [http://]hostname[:port]/path参数: ...

  9. MFC——从实现角度分析微云界面

    在云计算时代之风吹来,很多互联网公司都在建云,提出云盘.云储存.云平台.云空间等等,骤然间,天下皆云.云是啥?有用户量,就有云,没有用户量,你的系统,你的云,也就是一朵白云. 最近研究了下微云的界面, ...

  10. javascript 递归之阶乘

    阶乘,即5! = 5*4*3*2*1, 先看传统的做法,利用while循环实现: function factorial(num){ var result = num; if(num<0){ re ...