主要内容:

  1. 二进制
  2. 数据类型
  3. 变量
  4. 常量
  5. 赋值
  6. 语句结构
  7. 函数

网站的核心功能是展现信息,文字,图片,视频,音频,对于计算机来说都是数据,这些数据按照二进制进行存储。

二进制

就是1100,0100,1010这样的数据就是二进制数,二进制数分为有符号数、无符号数。原码,反码,补码是有符号数才有的表示方法。

对于正数:原码=反码=补码

原码:0100,0100,1010
反码:0100,0100,1010
补码:0100,0100,1010

对于负数:原码!=反码,反码+1=补码

原码:1100,0100,1010
反码:1011,1011,0101
补码:1011,1011,0110

数据类型

整数(10112),浮点数(12.34),字符串("cat"/‘cat’)

变量

使用$符号申明变量,以英文字母或者_(下划线)开头,后面可是是英文字母,数字,下划线,比如$score,$mark,$name,$Password

php预定义变量:

  • $GLOBALS(当前程序中全局变量)
  • $SERVER(全局变量,包含头信息,脚本位置的数组)
  • $_COOKIE(通过http的cookie方法提交到脚本的变量)

$_SERVER常见的$_SERVER的元素包括:

  • PHP_SELF(当前正在执行的脚本的文件名)
  • SERVER_ADD(当前执行脚本所在服务器ip)
  • DOCUMENT_ROOT(当前脚本所在文档根目录)
  • SCRIPT_FILENAME(当前执行脚本绝对路径)

demo2.php

<?php
$a="this is test!";
echo "通过\$GLOBALS来获取变量值:";
echo $GLOBALS['a']."<br/>"; echo "当前执行脚本的文件名:";
echo $_SERVER['PHP_SELF']."<br/>"; echo "当前执行脚本的跟目录:";
echo $_SERVER['DOCUMENT_ROOT']."<br/>"; echo "当前执行脚本的绝对路径:";
echo $_SERVER['SCRIPT_FILENAME']."<br/>"; ?>

启动xampp的控制面板,运行Apache,绿色说明是正常运行

将文件拷贝的xampp的htdocs下

打开浏览器输入:http://localhost/demo2.php

常量

const name=value;

比如:const MONEY_RATE=0.5;

常用预定义常量

  • __FILE__(放回当前文件名称,注意下划线是两个)
  • __LINE__(返回当前代码所在行号,注意下划线是两个)
  • __FUNCTION__(返回所在函数的名称,注意下划线是两个)
  • __CLASS__(返回所在的类名,注意下划线是两个)
  • PHP_OS(返回操作系统名称)
  • TRUE(布尔值,真)
  • FALSE(布尔值,假)
  • NULL(空值)

demo3.php

<?php
echo "当前文件所在位置:".__FILE__."<br/>";
echo "当前操作系统是:".PHP_OS; ?>

赋值

赋值最基本的运算

demo4.php

<?php
$a="this is test!";//申明变量,并赋值 $b;
$b='this is test!';//先申明变量,后赋值 $c=$a;//使用一个变量给另一个变量赋值 ECHO $a."<br/>";
echo $b."<br/>";
echo $c."<br/>"; ?>

输出:

字符串单引号和双引号

单引号的变量做字符串处理,双引号变量会解析出来

demo5.php

<?php
$a="this is test!";
$b=10;
echo '$a'.'<br/>'.'$b'."<br/>";
echo "$a".'<br/>'."$b"."<br/>"; ?>

输出

语句结构

PHP语句通常是表达式组成,语句;(英文分号)结尾,不加会报错。

条件构成

关系运算:>(大于),<(小于),==(等于),===(全等于,包括类型),<>或!=(不等于),!==(非全等于,左右操作数数值或者类型不相等,返回真)

逻辑运算

  • and/&&/&(逻辑与true&true==>true)
  • or/||/|(逻辑或false||false==>false)
  • not/!(逻辑非!true==>false)
  • xor/^(逻辑异或,true^false==>true ,false^true==>true,false^false==>false)

逻辑与(&&)的短路原则:

  • exp1&&exp2,如果exp1为false,则exp2不执行,直接返回false

分支结构

  • if语句
  • if-else语句
  • if-elseif-else语句
  • switch语句

demo6.php

<?php
$a=5;
$b=10;
if($a>$b){
echo '$a大于$b';
}else{
echo '$a小于$b';
} ?>

输出$a小于$b

循环结构

while语句

do-while语句

for语句

demo7.php

<?php
//for循环
for($i=0;$i<10;$i++){
echo 'good! ';
} ?>

输出good! good! good! good! good! good! good! good! good! good!

函数

PHP的函数很好用,不用申明返回数据的类型(当然这是优点也是缺点,不过我认为还是优点,减少了代码量啊,有没有!而且还不用想破头到底应该返回什么类型数据,而且PHP的输出支持链式调用,太方便了啊!)

函数把一个完整的功能多条语句封装成一个模块,函数使用function来申明

demo8.php

<?php
//输出n次变量a
function printString($a,$n){
//for循环
for($i=0;$i<$n;$i++){
echo "$a";
}
}
//调用函数
printString("good! ",5);
printString("<br/>",2);
printString("apple and pear! ",1); ?>

输出

这个时候的函数参数为值传递,就是一个copy,在函数内部改变这个值不会影响到外部的变量的值,但是如果我们想要在函数内部改变外部的值,需要引用传递,将参数的引用路径地址&a传入

demo.9.php

<?php
//交换$a,$b位置
function swap(&$a,&$b){
echo "交换前:".'$a='.$a.'$b='.$b;
echo '<br/>';
$temp=$a;
$a=$b;
$b=$temp;
echo "交换后:".'$a='.$a.'$b='.$b;
}
$a=5;
$b=9;
//调用
swap($a,$b) ?>

输出

交换前:$a=5$b=9
交换后:$a=9$b=5

全局变量

函数中不能直接使用全局变量,如果需要在函数中使用申明的全局变量,需要加前缀global

<?php

	$a=100;
//输出全局变量a
function gbl(){
global $a;
echo $a;
}
//调用
gbl();
?>

输出

100

静态变量

函数外不能直接使用函数内部的变量,如果需要在函数外使用申明的函数中的变量,函数中变量需要加前缀static

<?php
//输出静态变量a
function stc(){
static $a=0;
$a++;
echo $a.',';
}
//调用
stc();
stc();
stc();
stc();
stc();
?>

输出

1,2,3,4,5,

返回值

PHP的函数不用声明返回值类型,真方便!

<?php
//返回字符型
function reutrnString(){
return "today is sunday.";
}
//返回数字
function returnNum(){
return 1024;
}
//调用
$a=reutrnString();
echo "\$a=$a"."<br/>";
$a=returnNum();
echo "\$a=$a"; ?>

输出

$a=today is sunday.
$a=1024

函数引用返回

需要在申明函数的时候,在函数前面在&(取地址符号)

(这个有点变态,直接操作引用地址,用起来出错了怎么搞)

<?php

	//返回数字
function &returnNum(){
static $b=0;
$b=$b+1;
echo $b.'<br/>';
return $b;
}
//调用
$a=returnNum();
//使用&
$a=&returnNum();
$a=1000;
$a=returnNum(); ?>

输出

1
2
1001

可变函数

需要在调用函数的时候在前面加$(申明变量符号),调用同一个函数,但是却执行的是不一样的代码,

这个技术太牛逼!要是可以在配置文件中对变量进行修改,那么就可以动态的决定要执行那个函数,根据需求动态的修改程序,牛!!!

(这个更加变态,不说了,看代码)

<?php
//返回字符型
function reutrnString(){
echo "today is sunday.<br/>";
}
//返回数字
function returnNum(){
echo 1024;
}
function hello(){
echo '你好';
}
//调用
$func='reutrnString';
$func();
$func='returnNum';
$func();
$func='hello';
$func(); ?>

输出

today is sunday.
1024你好

递归函数

就是函数自己调用自己,没有什么好说的,在一些算法中为了简化可能会用到,但是递归调用的代码执行效率极低,不建议使用

<?php
//递归
function add(){
static $a=0;
$a++;
echo '$a='.$a.",";
if($a>10){
return;
}
//调用自己,直到满足条件
add();
} add(); ?>

输出

$a=1,$a=2,$a=3,$a=4,$a=5,$a=6,$a=7,$a=8,$a=9,$a=10,$a=11,

系统函数

就是PHP将一些常用的函数封装好了,不用自己写了,看看API直接使用就行了。

<?php
//返回最大值
$a=max(1,22,34,777,3,55);
echo "1,22,34,777,3,55中最大的数是:".$a;
?>

输出

1,22,34,777,3,55中最大的数是:777

  

PHP学习2——基本语法的更多相关文章

  1. JavaScript学习02 基础语法

    JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...

  2. 通过这些示例快速学习Java lambda语法

    对于那些不熟悉函数式编程的人来说,基本的Java lambda语法起初可能有点令人生畏.但是,一旦将lambda表达式分解为它们的组成部分,语法很快就会变得有意义并变得非常自然. Java中lambd ...

  3. vue第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法)

    第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法) #课程目标 了解 vue 框架的特点 掌握创建 vue 实例 掌握 data ...

  4. Python学习--Python基础语法

    第一个Python程序 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗 ...

  5. php学习之基础语法

    这些语法都是在学习视频的过程中整理出来的,有些很简单的语法可能就没有整理了,只是记录了自己看来比较重要的语法内容.   1.变量使用 $ 声明 ,变量区分大小写   变量的类型:      4种标量类 ...

  6. python学习之基础语法

    一.缩进 学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断.python 最具特色的就是用缩进来写模块. 缩进的空白数量是可变的, ...

  7. 学习fortran77基础语法

    Program ParamaterDefine Implicit None C FORTRAN变量名和关键字不区分大小写.但调用外部函数的话,需要在编译选项里指定 c 大小写等选项 因为链接器是区分大 ...

  8. Python学习---django模板语法180122

    django模板语法[Template] 模版的组成:  HTML代码+逻辑控制代码  <h1> {{ user_name }} </h1> 逻辑控制代码的组成: 1.变量: ...

  9. python学习第一天-语法学习

    1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Python这个名字,来自 ...

  10. JavaScript入门学习之一——初级语法

    JavaScript是前端编辑的一种编程语言(不同于html,html是一种标记语言),所以和其他的编程语言一样,我们将会从下面几点学习 基础语法 数据类型 函数 面向对象 JavaScript的组成 ...

随机推荐

  1. Java的进程内缓存框架:EhCache

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider.   Ehcache缓存的特点: 1. 快速. 2. 简单. 3. 多种 ...

  2. Centos7 中使用搭建devpi并且使用Supervisor守护进程

    一.先介绍一下supervisor 1.安装supervisor 使用yum安装或者使用pip安装都可以,使用yum安装的相对简单一些,并且不用拷贝一份 supervisord.conf 的配置文件, ...

  3. 201621123012 《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 2. 书面作业 本次作业题集集合 1. List中指定元素的删除(题集 ...

  4. 案例1-合并2个不同文件夹中的csv文件到另外一个目录,相同的文件名进行数据合并,不同的文件名直接移到新文件夹

    发现在ubuntu和centos中有些命令还不一样,比如<<<可在centos中使用,但是ubuntu中不行 csv文件名以及格式如下 3669_20180121.csv 总笔数,2 ...

  5. 初学C#,用vs去开始hello world!

    小弟初学c#,刚刚学会用vs来编写经典的hello,world程序,记录,并且分享给大家. 1. 用vs新建一个c#控制台程序: a. 首先打开vs,如下图所示,点击[新建项目]

  6. jmxtrans 监控kafka

    jmxtrans 的版本必须 是jmxtrans-268.rpm 以上 如果kafka 为kafka_2.11-0.10.1.0 ,则在 jdk 1.7上使用 kafka_2.12-0.11.0.0 ...

  7. To 高一

    Linux 坑待填 Special Judge 什么是 Special Judge?有的题目会让你输出任意一个解即可AC,或者是让你输出部分答案能取得本测试点部分得分,或者是按照方案的优秀程度给你分, ...

  8. C++ 创建类时常考虑的问题

    目录 继承 抽象接口 标准设计模式 初始化与析构模型 定义复制构造函数和赋值操作 模板 操作符 类型转换操作符 友元 非功能性约束 本文仅以c++为例,简要说明创建一个类时我们需要考虑的问题.创建一个 ...

  9. 编写高质量代码:Web前端开发修炼之道(二)

    第四章:高质量的css 1)怪异模式和标准模式 在标准模式中,浏览器根据规范表现页面:而怪异模式通常模拟老式浏览器的行为以防止老站点无法工作. 他们两者之间的差异比较典型的表现在IE对盒模型的解析:在 ...

  10. 分分钟钟学会Python - 数据类型(int、bool、str)

    第三天学习内容 今日内容 1.整型(int) 2.布尔类型(bool) 3.字符串(str) 内容详细 1.整型 Python中的整型用int表示. 1.python2中: 在32位机器上,整数的位数 ...