-------
补充
--------
建议定义常量时,判断常量名是否被定义,用defined()判断,返回布尔型
if(!defined("POEM")){//没定义过
define("POEM","杜甫");
}
---------------------------------
1,运算符
2.选择结构
3.循环结构
-----------------------------------
***1,运算符
算数运算 (+ - * /非整除 %求余 ++ -- )
$x=10;
$y=$x++; // 先赋值后自增
$z=++$x; //先自增后赋值
echo $y,$x,$z;
逻辑运算
与&& and 或|| or 非!not xor异或
注意:(1) 优先级:and小于&&,or小于||
$e=false||true;
$f=false or true;//先赋值,后判断
echo $e,"----",$f; // 1---
建议使用&&或||,使用or或者and的时根据需要添加括号
(2)
表达式1&&表达式2 若1为假,不再判断2
表达式1||表达式2 若1为真,不再判断2
$x=10;
$y=9;
$z=$x||++$y;//左侧为1,右侧++$y没有执行
echo $z,$y;
比较运算符
> < >= <=
==(值相等) ===全等(值和类型都相等)
!=(值不等) !==不全等(值或类型不相等)
$x=10;
$y=10.0;
$z=9;
if($x==$y){//值等
echo "相等1";
}
if($x===$y){//值和类型完全相等 且
echo "等价2";
}
if($x!=$z){
echo "不相等3";
}
//!(a且b) = !a || !b if($x!==$z){//值或类型不等
echo "不相等4";
}
【注意】字符串比较:从左到右依次比较每个字符 赋值运算符
= += -= *= /= %= .=
$a=10;
$a+=12;
echo $a; $y="hello";
$y.="world";
echo $y; 三目运算(三元表达式)
条件 ?表达式1 :表达式2
如果条件为真,结果为表达式1,否则结果为表达式2
//需求:如果输入tom 123表示登陆成功,否则登录失败
$name=$_GET["username"];
$psw=$_GET["psw"]; $result= $name=="tom"&&$psw=="123" ?"登录成功,$name ,$psw": "登录失败";
$result2= $name=="tom"&&$psw!="123" ?"密码不正确": "";
$result3= $name!="tom" ?"用户不存在": ""; echo $result,$result2,$result3;
// 第二种
$result=$_GET["user"]=="tom" ? ($_GET["pass"]=="123"? "登陆成功":"密码不正确"):"用户名不存在";
echo $result; ****选择结构
单分支if
双 if else
多分支 if else if ... else echo date("Y年m月d日D星期");
$time=date("H");
if($time<12){
echo "上午好";
}else if($time>=12&&$time<18){
echo "下午好";
}else{
echo "晚上好";
}
**switch选择结构
多路选择:值等或不等的情况,不能处理范围或区间的选择
$time=$_GET["time"];
switch($time){
case "1" :echo "星期一"; break;
case "2" :echo "星期二"; break;
case "3" :echo "星期三"; break;
case "4" :echo "星期4"; break;
case "5" :echo "星期5"; break;
case "6" :echo "星期6"; break;
case "7" :echo "星期日"; break;
default : echo "星期错误";break;
} $time=4;
switch($time){
case "1" :echo "星期一";
case "2" :echo "星期二";
case "3" :echo "星期三"; break;
case "4" :echo "星期4";
case "5" :echo "星期5"; break;
case "6" :echo "星期6";
case "7" :echo "星期日";
default : echo "星期错误";break;
}
//星期4 星期5
【注】switch匹配case成功后,直到遇到break才退出选择结构,所以推荐每个case后都要加break;
default位置任意,执行也是遇到break退出选择结构
switch执行顺序:先匹配case,如果case匹配不成功,匹配default
例1:
$b=true;
switch($b){
case false:echo '假' ;break;
case 0:echo '*******' ;break;
case null:echo '空';break;
case -1:echo '负数' ;break;
case 2:echo '星期二' ;break;
default:echo "no this day";
}
// switch中表达式为true时,匹配非false的case入口
// 非0即为true, false和0以及null都为false
例二:
$b=2;
switch($b){
case true:echo 'happy' ;break;
case 2:echo '星期二' ;break;
default:echo "no this day";
}
//说明:如果case为true的入口在匹配成功之前,该case一定会匹配到
例三:
$b="2";
switch($b){
case 2:echo '星期二' ;break;
case true:echo 'happy' ;break;
default:echo "no this day";
}
//case匹配的是数值,switch结构能够自动转换类型
例四:
$b=null;
switch($b){
case false:echo '假';break;
case null:echo 'null对象' ;break;
default:echo "no this day";
}
// 说明:switch中表达式值为null,作为false匹配
//此处null和false都是匹配入口,结果与这两个case入口的顺序有关
***循环结构
while(条件){
// 循环体
//注意:控制变量
}
//需求:求1-100的和
$i=1;//控制变量
$sum=0;//保存结果
while($i<=100){
$sum+=$i;
$i++;//别忘了
}
echo $sum;
do-while:先斩后奏
do{
//循环体
// 修改控制变量
}while(条件); //需求:求1-100的和
$i=1;//控制变量
$sum=0;//保存结果
do{
$sum+=$i;
$i++;
}while($i<=100);
echo $sum;
for循环
for(语句1;条件;语句){
//循环体
}
//需求:求1-100的和
$sum=0;//保存结果
for($i=1;$i<=100;$i++){
$sum+=$i;
}
echo $sum;
//说明:已知循环次数时,通常采用for循环,若不知道循环次数一般用while或者do-while
****循环结构复合体
//外层控制行号
for($i=1;$i<=9;$i++){
//内层控制每行输几个#
for($j=1;$j<=$i;$j++){
echo "#";
}
echo "<br>";
} //外层控制行号
for($i=1;$i<=9;$i++){
//内层控制每行输入的内容
//输空格
for($j=1;$j<=10-$i;$j++){
echo "&nbsp;&nbsp;";
}
// 输出#
for($j=1;$j<=$i;$j++){
echo "#";
}
echo "<br>";
}
//输出金字塔
for($i=1;$i<=9;$i++){
//内层控制每行输入的内容
//输空格
for($j=1;$j<=10-$i;$j++){
echo "$";
}
// 输出#
for($j=1;$j<=2*$i-1;$j++){
echo "#";
}
echo "<br>";
}
//输出空心金字塔
for($i=1;$i<=9;$i++){
//内层控制每行输入的内容
//输空格
for($j=1;$j<=9-$i;$j++){
echo "&nbsp;";
}
// 输出#
for($j=1;$j<=2*$i-1;$j++){
//除最后一行之外,// 首末输出#,否则输出空格
if($i!=9){
if($j==1||$j==2*$i-1){
echo "#";
}else{
echo "&nbsp;";
}
}else{
echo "#";
}
}
echo "<br>";
}

php自学笔记3的更多相关文章

  1. 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...

  2. 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...

  3. 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...

  4. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

  5. ssh自学笔记

    Ssh自学笔记 Ssh简介 传统的网络服务程序,如:ftp.pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务 ...

  6. JavaScript高级程序设计之自学笔记(一)————Array类型

    以下为自学笔记. 一.Array类型 创建数组的基本方式有两种: 1.1第一种是使用Array构造函数(可省略new操作符). 1.2第二种是使用数组字面量表示法. 二.数组的访问 2.1访问方法 在 ...

  7. vue 自学笔记记录

    vue 自学笔记(一): 知识内容:  安装vue ,创建vue实例,安装第一个组件,单项数据流 https://www.cnblogs.com/baili-luoyun/p/10763163.htm ...

  8. JS自学笔记05

    JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...

  9. JS自学笔记04

    JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...

  10. JS自学笔记03

    JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...

随机推荐

  1. Explain of Interaction Operators in UML?

    来源于:EA 中的 Interaction Operators Enterprise Architect User Guide Operator Action alt Divide up intera ...

  2. android cordova h5总结

    最近项目 替换页面  把80%页面替换成h5了. 首页h5页面可以放在android本地.增加访问速度.节省用户流量 把服务器上的  js代码 压缩成zip格式  放在asset目录.当应用安装时候 ...

  3. 安装sysbench遇到找不到库文件的问题

    export LD_LIBRARY_PATH=/usr/mysql/lib./configure --prefix=/usr/local/sysbench --with-mysql-includes= ...

  4. elasticsearch 索引优化

    ES索引优化篇主要从两个方面解决问题,一是索引数据过程:二是检索过程.  索引数据过程我在上面几篇文章中有提到怎么创建索引和导入数据,但是大家可能会遇到索引数据比较慢的过程.其实明白索引的原理就可以有 ...

  5. VBS脚本和HTML DOM自动操作网页

    VBS脚本和HTML DOM自动操作网页 2016-06-16 10:24 1068人阅读 评论(0) 收藏 举报  分类: Windows(42)  版权声明:本文为博主原创文章,未经博主允许不得转 ...

  6. Zencart批量删除无图片产品

    Zencart批量删除无图片产品 2012-04-23 07:26:18|  分类: 默认分类 |字号 订阅 转自 http://zhongjia33.blog.163.com/blog/#m=0   ...

  7. C# Excel嵌入到Winform

    本文讲的这个技术是把Excel表格嵌入到自己开发程序的Form窗体中进行操作,给客户一个不用切换窗口的操作界面,似乎更好.这在VC中用OLE技术很容易实现,但是在C#中方法就不一样啦.下面将就此进行阐 ...

  8. JS中三目运算符和if else的区别分析与示例

    本文是通过示例详细分析了JS中三目运算符和if else的区别,是篇非常不错的文章,这里推荐给大家.   今天写了一个图片轮播的小demo,用到了判断 先试了一下if else,代码如下: 复制代码代 ...

  9. Ubuntu和Redhat(Debian)的差别

    这两个最大的区别在包管理模式上. 都是用的Linux核心构架的. Redhat主要集中在 企业级服务器版的制作 是推动LINUX商业化最成功的公司 Redhat对应的桌面版制作 都是由Fedora社区 ...

  10. Hibernate配置过程可能发生的问题及解决方法

    1.问题:Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentExceptio ...