PHP的基本语法
PHP的基本语法和c#的基本语法是差不多的,在这里只和大家聊一下PHP和C#语法不同的地方。
首先
PHP和c#的标记方式不一样,PHP他是一门脚本语言,JS也是脚本语言,只不过JS是运行在客户端的,而PHP是运行在服务端的。两种不同的地方运行,客户端的脚本语言只能处理我们当前页面上的这些内容,但是服务器端的可以去操作数据库。既然都是脚本语言,那么JS可以嵌入到页面里面的任何地方PHP也是可以的。
JS嵌入的时候 标记是<script type="text/javascript"></script>是以script为开头的以/script为结尾的。
PHP嵌入时的标记是<?php ?>以?php为开头以?为结尾的。还有一种短标记是<? ?>以?为开头以?为结尾,如果要用短标记,那么在PHP配置文件中必须开启短标记才可以使用。一般推荐使用<?php ?>这一种,因为我们正常使用的就是这种方式,当然还有其他的一些插入的方式,我们就不细细说了。
注释语法和其他的注释语法是一样的://——行注释 /* */ ——多行注释
输出语句:
输出方式是: echo "xxx";——意思是输出显示xxx
print "xxx";——也是输出的意思
print_r();——专门用来输出数组的
var_dump()——用来输出变量、数据类型和字符长度的
print_r();和var_dump()一般不当做正常的输出来使用,主要是用来测试的。
echo和print两者有什么区别呢,区别在于echo可以输出多个字符串但是print只能输出单字符串。
变量定义:在其他语言里面比如说C#里面我们需要定义一个变量,首先要知道变量的可用类型
类型包括:int float double bool char string datetime这几类
附:PHP语言是一门弱类型语言,所以在定义变量的时候我们不需要加数据类型,直接可以拿过来使用,但是强类型语言就不可以,强类型语言必须明确定义变量的数据类型。
这里插入一个小话题,有人说弱类型语言里面是没有类型的,这个说法是错误的!实际上弱类型语言他也包含了这么多的数据类型,只是没有表现出来而已并不是说没有数据类型。只不过在定义变量的时候,他会根据等号右边的值自动进行定义,去确定这个值得数据类型。
PHP所有的变量都是以 $ 来开头的
如:变量a=$a;变量b=$b;
在PHP里面 变量可以存放任何数据类型的数值,可以是整型,小数类型,布尔型等·····
$a="10";
$b='hello';
这里有个区别,单引号和双引号的区别,
双引号可以识别转义字符和变量而单引号就不能识别转义字符和变量。
如果在双引号内还需要加入变量或者字符串,需要使用转义字符来进行插入或者在等号的右边加上三个尖括号 尖括号后面跟定义的名称或者说是三个尖括号的标示,标示可以随便定义建议用全部大写的英文字字母
$a = <<<AA
AA;
结束语的AA;前不要加任何东西 如:空格 回车什么的
需要显示的字符串写在<<<AA和AA;中间
如:
$a = <<<AA
"aaaaa"cccc"bbbbb"cccc"aaaaa"
AA;
在字符串a里面插入字符串b,在b字符串里面插入字符串c
变量的拼接
在PHP里面 拼接的符号不是+(加好)而是.(点),加号在PHP里面只有运算的作用没有连接、拼接的作用,要拼接变量就是$a.$b;只有这样才能进行变量的拼接。
经过广大程序员使用中的观察,PHP的变量里使用的最多几个数据类型是:int float bool string
注***在PHP里面没有日期时间的类型。
强制转换——因为PHP是弱类型语言所有的变量都是在后台自动进行转换的所以一般不用,如果需要强制转换,那么强制转换的书写格式是:
$a = 10;
$a = (string)$a;
这样就把int类的变量a转变成了字符串类型。
可变变量:
$aa = "cc";
$cc = "dd";
echo $$aa;
可变变量只在PHP里面有效,$$aa得出来的结果是dd,
$dd = &$aa;
&符号的意思就是把aa所在的地址交给dd,使dd和aa使用同一个地址,也就是说dd和aa的显示值都是cc
如果关联上了地址,那么不管是在变量dd处还是在变量aa处更改值得内容,另一个都会跟随一起更改。
运算符表达式:
和c#里面的运算符表达式的应用是一样的,在这里着重说明一下除号的应用和区别。
在c#里面 除号前后都是整型的时候 的出来的只会是整型 不管它是不是被整除,但是在PHP里面,他会自动把结果转变为相对应的数据类型,如果整除结果就是整型,如果非整除那么结果就是小数类型。
注***如果出现无限小数列,那么系统最多显示到小数点后第16位。
错误抑制符——当不影响系统的正常运行并只弹出警告对话框的时候,我们需要让他不弹出警告对话框,只需要在变量前加个 @ 符号就可以抑制警告对话框的弹出,当然 抑制也是有范围的,就和警报等译一样,三级警报 notice 二级警报 warning 一级警报 error 三级最轻松依次逐渐严重,也就是说越往后@的抑制力越薄弱,甚至无效。
语句
分支语句
1.if....else....
2.if....else if....
3.if嵌套
循环语句
1.for循环
2.while
3.do...while
2016.5.30 孤独夜莺
PHP的基本语法的更多相关文章
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- 探索C#之6.0语法糖剖析
阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...
- [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...
- Velocity初探小结--velocity使用语法详解
做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- C#语法糖大汇总
首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...
- 值得注意的ibatis动态sql语法格式
一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...
- Flex 布局教程:语法篇
作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...
- postgresql 基本语法
postgresql数据库创建/修改/删除等写入类代码语法总结: 1,创建库 2,创建/删除表 2.1 创建表 create table myTableName 2.2 如果表不存在则创建表 crea ...
随机推荐
- 图片lightbox2
1. 官网下载 http://lokeshdhakar.com/projects/lightbox2/ 2.引入 css jquery js 3. HTML格式 <a href=" ...
- gogs安装
1.下载gogs文件,如果图方便可以选择编译好的文件网址https://gogs.io/docs/installation/install_from_binary 2.gogs web运行gogs 3 ...
- Linus:利用二级指针删除单向链表
Linus大神在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level codi ...
- Socket通信原理探讨(C++为例) good
http://www.cnblogs.com/xufeiyang/articles/4878096.html http://www.cnblogs.com/xufeiyang/articles/453 ...
- Android Handler简单示例
package com.firstapp.foo.firstapp; import android.os.Handler; import android.os.Message; import andr ...
- job_chain
JOB链:JOB之间的相互触发操作. 实验意图:有些JOB具有先后调用次序,比如先做一件事情,这件事情做完才能继续下一件事情,而第一个JOB如果自己挂掉的话,第二个JOB需要正常运行(默认是终止),这 ...
- eclipse有时候会报错:Cannot change version of project facet Dynamic Web Module to 2.5。这个错误不会影响程序的运行,不过看着总是不舒服。这个问题现在可以解决啦。
把项目WEB-INF底下的web.xml文件头部的: <?xml version="1.0" encoding="UTF-8"?> < ...
- Spark Programming--Fundamental operation
max max(key=None) Find the maximum item in this RDD. Parameters:key – A function used to generate ke ...
- JMeter学习-006-Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002 解决办法(windows 7)
好久没用 JMeter 了,今天启动的时候,发现启动命令行窗口出现了警报,警告信息如下图所示:
- mysql 数据库授权
1: GRANT ALL PRIVILEGES ON share_db.* to 'db_user'@'%' IDENTIFIED BY 'db_user'; 2:FLUSH PRIVILEGES;