一、php语法

  PHP是一种嵌入式脚本语言,所以,我们需要标记出哪些是PHP代码,哪些是html代码。当html和php代码进行混编的时候,文件必须要以php结尾(否则Apache不会将这个文件交给php处理,直接作出响应),但是PHP引擎也只是选择性的进行处理,它只处理PHP代码的那一部分。

  php标记:1、<?php  ?>  2、<script language=”php”></script>  3、<?  ?>和4、<%  %>(在php.ini中配置short_open_tag = On和asp_tags=On)

  php注释:在php标签内生效,有//、#和/* */,但是html的注释符不能用来注释php语句,仍能执行php语句,只是浏览器不显示而已。在PHP项目中,比较常用的是一个注释规范是PHPDocumentor的一种风格,PHPDocumentor可以自动提取一个PHP文档中的所有的注释内容,注释规范如下:

函数一般采用块注释:

/**

*函数的功能

*@param 参数类型 参数名1 参数解释

*@param 参数类型 参数名2 参数解释

*@return 返回值类型 返回值解释

*@author

*修改时间

*/

二、常见的输出语句

  1、print   输出字符串、表达式、变量等单项的值,不能输出数组、对象等复杂的数组类型

  2、echo   可以输出多个简单数据,以逗号分隔(也可以用字符串连接符"."来连接输出的字符,但直接输出以逗号分隔的多个字符串效率更高)

  3、var_dump( )   测试代码时使用最多的语句,多个数据以逗号分隔,输出的内容最全面

  4、print_r( )   一般用来打印数组等复杂类型的,只打印数组里面的值,较var_dump简洁

  5、printf( )   比较擅长输出静态文本和其他变量所组成的“混合产物”  printf(“%s %d %s”,$str1,$str2,$str3)    printf的最大优势是可以控制输出变量的格式!

三、变量

  1、脚本周期:从apache将请求交给php处理开始,到PHP处理结束后将结果返回给apache为止。

  2、可变变量:变量的名字可变,在有些时候,需要对变量的名字进行拼凑,使之成为一个新变量,常见于for循环中:$v='v'.$i,$sum+=$$v

  3、预定义变量:$GLOBALS将全局变量变为超全局变量("同生共死")、$_GET、$_POST、$_REGUEST、$_COOKIE、$_SERVER(服务器收集到的浏览器信息和服务器信息的一个数组集合)等等

四、常量

  1、在一个脚本周期内,其值不会发生改变的量,一旦定义,就不能被修改或删除。常量的作用域是全局的。常量名默认不区分大小写,为了与变量进行区分,统一大写。

  2、定义常量:define(‘常量名’,常量值,是否不区分大小写)    const 常量名=常量值

  3、判断常量是否存在:defined(‘常量名’),返回一个布尔值;获取常量的值(常用于获取特殊的常量名的值,比如"^_^"),constant(‘常量名’);

  4、预定义常量

    get_defined_constants( )可以当前自定义常量和系统预定义常量。

    魔术常量:其值,由代码所在的位置决定。常量名以__开始,以__结束。如:__FILE__、__DIR__等

五、数据类型

  三大类:标量类型(简单类型)、复合类型和特殊类型

  八小类:整型(4字节)、浮点型(双精度、8字节、有效位14位)、布尔型、字符串型(utf-8下的汉字占3个字节)、数组、对象、空类型(NULL)、资源型

    定义字符串:

  单引号定义:不能解析变量,只能转义单引号和转义字符"\";  效率较双引号高一些

  双引号定义:能解析变量,最好用定界符{}包裹;可以转义多种字符,如:"\n换行"、"\r回车"、"\$"等;

  定界符(Heredoc):开始与结束标记单独占一行。类似于双引号

<<<开始标记

  //字符串内容

结束标记;

  定界符(Nowdoc):类似于单引号

<<<’ 开始标记 ’

  //字符串内容

结束标记

  常见的,定界符适用于定义html代码或者js代码。也就是把这些代码以字符串的形式保存到一个变量中,需要的时候输出该字符串,浏览器就可以解析该段代码了!

  类型强制转换:(目标类型)原始数据,如:(Int)5.2

    无论是自动转换还是强制转换,只是临时生成了一个数据拿来使用,不影响原有数据的值和类型!

    1、无法将一个数据强制转换为null型和资源型

    2、对于(array)是将后面的数据项强制转换为该数组的第一个元素,但是,这种并不是增加数组元素的一种语法,因为先将原数组清空,再把后面的数据转换为当前数组的

      第一个元素

    3、对于(object),其实就是将后面的数据转换为该对象的一个属性

六、类型相关的函数

  1、函数的原型:函数返回值类型 函数名(参数1类型 参数1,参数2类型 参数2……)

    1)任何一个函数,都要考虑它是否有返回值以及该返回值的类型,如果该函数没有返回值,就用void来表示;

    2)如果函数参数的类型或者函数返回值的类型有很多个,就用mixed来代替,意思就是混合类型,也叫作“伪类型”。

  2、string  gettype  (mixed  $var)  返回一个数据项(变量或常量或表达式)的类型

  3、bool   settype  (mixed  &$var , string $type)     将变量var的类型设置成type,如果转换成功,就返回true,如果转换失败,就返回false,转换改变了原数据

  4、bool  isset  (mixed  $var , ……)   检测变量是否存在,存在返回true,不存在返回false,还可以用来判断一个数组的某个元素是否存在,以及对象的属性是否存在

    变量不存在的几种情况:1)变量未被声明;2)变量被删除;3)变量的值为NULL

  5、bool  empty  (mixed $var)  判断一个变量是否为空,如果为空就返回true,如果不为空就返回false

    变量为空的判断依据如下(有两种情况):

    1)该变量根本就不存在,也就是用isset的结果为false

    2)该变量存在,但是(boolean)$var强制转换该变量为false

  6、is_numeric  判断是否是一个数值类型,等于is_int + in_float,如果一个字符串是一个数字字符串(里面全部为数字),也当成是一个数值型数据来处理

  7、is_scalar   判断是否为标量数据类型

七、运算符

  算术运算符、赋值运算符、字符串运算符、关系运算符(比较运算符)、逻辑运算符、条件运算符(三目运算符)、位运算符、其他运算符

  注意几点:

    任何一个表达式都要返回一个值!

    逻辑异或xor:一真一假就为真,其余为假!

    <<n:按位左移,将整个字节向左移动,右边用0填充;相当于原数值*2^n

    >>n:按位右移,将整个字节向右移动,如果是正数,左边补0,如果是负数,左边补1

    其他运算符:

      面向对象的时候,new是实例化一个对象,clone是克隆一个对象

      @:错误抑制符,作用是抑制系统错误信息,然后我们再返回给用户友好的提示信息

      instanceof:判断一个对象是否为一个类的实例(参数1是一个对象变量,参数2是一个类)

八、流程控制

  (参照我前面的随笔——《分支结构和循环语句》,此处略)  

PHP初步(上)的更多相关文章

  1. LinQ实战学习笔记(一) LINQ to (Objects, XML, SQL) 入门初步

    LINQ对于笔者来说, 优美而浓缩的代码让人震惊. 研究LINQ就是在艺术化自己的代码. 之前只是走马观花学会了基本的语法, 但是经常在CSDN看到令人惊讶自叹不如的LINQ代码, 还是让人羡慕嫉妒恨 ...

  2. openjtag 的硬件连接踩坑历程

    这个事情踩了不少坑,这个要记录一下: 1 代码的下载和编译按照下面的来:https://github.com/pulp-platform/pulp-debug-bridge 注意点: A 要最好使用p ...

  3. p2p項目夭折,有種蛋蛋的憂傷。。

      在高考完的暑假就在跟杰哥讨论怎样实现的校内p2p文件共享,就在今天.我们无奈的宣布差点儿夭折. 上图是測试图. 那时候的思路已经完好.就是:"学生上传共享文件到咱们工作室的server. ...

  4. 体验CoreCLR的stack unwinding特性在Linux/Mac上的初步实现

    有了stack unwinding特性,才能在.NET程序中获取调用堆栈(call stack)信息,才能在异常时显示调用堆栈信息.这个特性之前只在Windows上有实现,Linux/Mac上的实现最 ...

  5. GAN初步——本质上就是在做优化,对于生成器传给辨别器的生成图片,生成器希望辨别器打上标签 1,体现在loss上!

    from:https://www.sohu.com/a/159976204_717210 GAN 从 2014 年诞生以来发展的是相当火热,比较著名的 GAN 的应用有 Pix2Pix.CycleGA ...

  6. VirtualBox上LInux命令初步学习

    大二的寒假已经接近了尾声,寒假期间我初步使用了VirtualBox虚拟机软件,并安装了ubuntu的操作系统进行了Linux语言的学习.然而寒假期间的学习没有太多的计划,纯粹是为了完成作业而应付性的学 ...

  7. 【数据库开发】在Windows上利用C++开发MySQL的初步

    [数据库开发]在Windows上利用C++开发MySQL的初步 标签(空格分隔): [编程开发] Windows上在上面配置环境的基础上开展一个小demo链接数据库,没想到中间也出现了这么多的问题,简 ...

  8. kinect在ros上的初步测试---17

    摘要: 原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 1.在使用本贴前必须先按照我的上一个博文正确在ubuntu上安装kinect驱动:http:// ...

  9. OSX 上初步尝试 asp.net 5

    去年微软最令开源狗界振奋的消息就是 ASP.NET 的开放与开源这一消息了. 根据微软的介绍,与我之前的一些总结,可以看到 ASP.NET 以及 .NET 平台会有下面几个变化: 代码使用 Apach ...

  10. 04_Javascript初步第二天(上)

    全局函数 isFinity() - 检测是否是无穷值(+infinity,-infinity,NaN返回false): isNaN() - 检测是否为数值 encodeURI(uri) - 将字符串编 ...

随机推荐

  1. OpenCV2+入门系列(三):遍历图像的几种方法

    根据OpenCV中Mat类型的结构和内存中存储方式,此处给出三种对图像进行遍历的方法.首先给出基础的读取图片代码,在中间替换三种遍历方法即可,本文中,程序将遍历图像并将所有像素点置为255,所有运行结 ...

  2. Openlayers自定义简单popup

    OpenLayers中可以使用很多种类型的popup,大家可以到Openlayers的 popupMatrix.html示例中看.之前存在这样一个错误的想法:popup和marker是绑定的,要有po ...

  3. Git 安装

    安装参考资料: http://lzw.me/a/msysgit-tortoisegit-win-git.html http://blog.csdn.net/qwiwuqo/article/detail ...

  4. sublime 3 安装go环境

    安装go环境是在go已经安装的情况下, 1 首先安装 Package Control ctrl + · 打开sublime 命令行模式 复制粘贴以下代码 import urllib.request,o ...

  5. ireport5.6+jasperreport6.3开发(三)--以javabean为基准的报表开发(javabean)

    这里只有ireport的开发没有web侧的程序. ireport的数据源可以说是多种多样,大致可以通过文件 数据库 bean类这三种方式,这里只介绍bean类 (数据库比较简单可参考其他的网站,文件没 ...

  6. Attendance

    1.打怪 福利好美味(色.... 努力是为了,遇到你时,可以不用因为种种而错过. 一公司的老板对一位职员说:“我出10万买你的老婆,你卖吗?” 职员微笑着说:“那我出15万买你老婆,你同意吗?” 老板 ...

  7. mongo 相关命令

    mongo导入数据: 1. 先进入找到mongo 安装目录 执行 ./mongo 进入mongo 2. mongorestore -u 用户名 -p 密码 -d 数据库 —drop 文件存在路径 显示 ...

  8. JavaScript函数定义和调用 变量作用域

     本文是笔者在看廖雪峰老师JavaScript教程时的个人总结   JavaScript中函数定义可以是这样的格式 function 函数名(参数) {     函数体 } 也可以是这样的格式     ...

  9. 苹果MacBook Air安装win7

    同事的一台mba,说iOS不习惯,希望装一个win7系统.机器看上去很小巧精致,运行iOS速度飞快.试着点了下鼠标,没反应,翻过来看了下,有个电源开关.拨了一下,细小的指示灯闪了闪,应该加上电了.唉, ...

  10. JavaScipt 样式操作

    我们知道HTML样式定义的三种方式: <link/>外部引入也就是定义 CSS 中的 <style/>嵌入式样式 style特性地定义 给一个HTML元素设置css属性,如: ...