PHP变量、数据类型、字符串、运算符、条件语句、循环语句、数组、函数
PHP
简介:
php :是一门动态交互的计算机语言 静态交互 html css js
但凡是动态交互的 都需要服务器。
php都是以.php结尾的文件
Html文件里不能写php代码,但是php文件里可以写Html代码
PHP模板
Html该怎么写还怎么写,但是php代码写在<?php ?>里面
语法
php代码写在<?php 里面放php代码 ?>
php的注释 // /**/ 快捷键:ctrl+?
php的输出语句 echo print
变量:
变量的命名:
以$符开始
变量的标志:$
变量的规则:
1、变量以$符号开始,后面跟着变量的名称
2、变量名必须以字母或者下划线字符开始
3、变量名只能包含字母、数字、字符或下划线
4、变量名不能包含空格
5、变量名是区分大小写的
变量的赋值
使用=等号就是赋值运算,从右往左读,
$2=2,本质上来说,是存放2的数据空间的地址赋值给变量a;
变量的主要功能是基本数据类型,php会默认把地址和数据空间为一体直接赋值给变量a,
基本数据类型的赋值可以直接忽略地址,直接操作数值
如果我就想把地址赋值给变量,我们需要在再前面加上一个地址符&,他的赋值就是操作地址不再是操作值
变量的作用域
1、全局 global
函数外的都是全局作用域
2、局部 local
函数内部的都是局部作用域
变量的作用域和js作用域的区别:
js有作用域链,php没有;php中的全局作用域不能访问局部的,局部也不能访问全局的,如果需要访问需要手动操作
作用域的四个关键字:
global(全局的)、local(局部的)、static(静态的)、parameter(参数)
global:局部想要访问全局变量,在局部变量前加关键字 global
static:函数调用完毕之后,会自动消除内存,但有时我们需要函数内部的一个变量内存不被销毁,js使用闭包就可以实现了,php使用static就解决了
parameter :所有的参数作用域都是局部的
Isset() 判断变量是否设置(赋值)还回的是Boolean
php的数据类型
String、int(整形)、float、boolean、Array、Object、null
基本数据类型:String、int、float、boolean
复合数据类型:Array、Object
数据类型针对变量,php是弱类型语言,是什么类型跟你声明的时候没有关系,跟赋值的时候有关
Var_dump() 还回变量的数据类型和值
字符串:
1、并置运算
js中叫拼接,用+
php中叫并置,用 . 运算
注意:php的汉字出现乱码,我们需要在php的第一行添加
header("Content-Type: text/html;charset=utf-8");
2、strlen() 返回字符串的长度
一个字母一个字符长,一个汉字3个字符长
运算符
四则运算:+、-、*、/
赋值运算:$a+=2; 等价于$a=$a+2
自增自减:$a++、++$a、
比较运算符:
==(等于)、===(全等)、!=(不等于)、!==(绝对不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
==(等于)主要用于判断
逻辑运算:||(或)、&&(且)、!(非)
|| :有一个为true 就返回true;
&&: 都得为true 才返回true
三元运算:又称三日运算,条件?echo1:echo2
求余运算:%,
条件语句
if else
单条语句:
$name=56;
if($name<23) echo "hello world3333";
多条语句
switch
循环语句
for
while
do while
do while与while的区别:
While是先判断后执行,do while 先执行后判断
for each
for each针对关联数组的
Array(“name”=>”zhang”,”age”=>12) 这种写法我们叫关联数组
Php中没有json格式,但是对于前端来说,要json格式。
Php提供了一个方法叫 json_encode() 将数据转换成json格式
数组:
1、数组
$arr=[“zhang”,”li”] $a=array(“yuan”,”ni”)
2、关联数组
$arr=array(“name”=>”zhang”,”age”=>56)
3、多维数组
获取数组长度的方法:count()
Is_array() 判断一个变量是不是数组
函数:
php自定义函数和内置函数
使用关键字function 定义函数
function () {};fn() 函数调用的时候会开辟内存空间 里面有栈和堆 调用完毕之后这个内存就被销毁。销毁顺序是先进后出 先进去的后销毁 后进去的先销毁。
函数作用域
四个关键字 global static local parameter
Global 的变量都会存在php中一个叫$GLOBALS的数组中
函数的参数
1、参数传参
2、默认参数
如果传的有默认参数和普通参数同时传 需要注意顺序问题
3、引用传参
将变量的地址传进去,函数内部如果修改了这个地址里的值 函数外也会跟着改
在js中函数自身有一个arguments的属性,叫实参构成的数据集合
Fun_num_args() 获取实参数的个数
Fun_get_agrs() 获取实参构成的集合
还回的是一个数组
Fun_get_arg(index) 获取具体的某一个参数
递归函数
函数内部调用函数本身
PHP变量、数据类型、字符串、运算符、条件语句、循环语句、数组、函数的更多相关文章
- 9.12/ css3拓展、js基础语法、程序基本知识、数据类型、运算符表达方式、语句知识点
css3拓展: <display:none> 将某个元素隐藏 <visibility:hidden> 也是将某个元素隐藏 <display:block&g ...
- #7 Python顺序、条件、循环语句
前言 上一节讲解了Python的数据类型和运算,本节将继续深入,涉及Python的语句结构,相当于Python的语法,是以后编写程序的重要基础! 一.顺序语句 顺序语句很好理解,就是按程序的顺序逻辑编 ...
- Python 2.7 学习笔记 条件与循环语句
本文介绍下python条件和循环语句的语法 一.if条件语句 语法格式如下: if 表达式: .... elif 表达式: .... elif 表达式: .... else: ..... 说明:与其它 ...
- 【Python】-NO.99.Note.4.Python -【Python3 条件语句 循环语句】
1.0.0 Summary Tittle:[Python]-NO.99.Note.4.Python -[Python3 条件语句 循环语句] Style:Python Series:Python Si ...
- python系列八:Python3条件控制&循环语句
#!/usr/bin/python #-*-coding:gbk-*-#Python3 条件控制&循环语句import randomage = int(input("请输入你的年龄: ...
- Python中的条件和循环语句
条件和循环语句 1. 条件语句 if单用 格式:if 条件表达式 例如:if 5 > 3: print('True') >>> 'True' #当条件满足时才会执行上述操作. ...
- python实例 条件和循环语句
#! /usr/bin/python #条件和循环语句 x=int(input("Please enter an integer:")) if x<0: x=0 ...
- python学习第四讲,python基础语法之判断语句,循环语句
目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...
- python之最强王者(3)——变量,条件、循环语句
1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的 ...
- Javascript语法,变量类型,条件,循环语句,函数,面向对象
1.JavaScript代码革两种存在形式: <!-- 方式一 --> <script type='txt/javascript' src='/js/comment.js'>& ...
随机推荐
- JZOJ 1667【AHOI2009】中国象棋——dp
题目:https://jzoj.net/senior/#main/show/1667 只注重0.1.2的列有多少个,不注重它们的位置,就能记录了. #include<iostream> # ...
- C# Linq 取得两个列表的交集
我们经常会用到linq 来查询 一个数组中和另一个数组中相同的项, 这个时候就会用到IEqualityComparer接口. public class StudyInfoModel { pu ...
- VijosP1595:学校网络(有向图变强连通图)
描述 一些学校的校园网连接在一个计算机网络上.学校之间存在软件支援协议.每个学校都有它应支援的学校名单(学校a支援学校b,并不表示学校b一定支援学校a).当某校获得一个新软件时,无论是直接得到的还是从 ...
- 数据结构&算法 索引
最近在看牛客网的算法课,准备开个坑,根据自己的理解,把课程讲到的内容列一个大纲,明年找工作的时候用. 再加上看算法第四版的内容,整理一套明年找工作能够直接拿出来用的代码. 此篇博文作为索引.
- day1 java基础回顾-Junit单元测试
Junit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个类对应一个测试类. 1,测试类与被测试类最好是放到同一个包中(可以是不同的源文件 ...
- strlen细节以及sizeof细节
strlen细节以及sizeof细节前者会忽略结束符号,后者不会忽略结束符
- Thinkpad 拆光驱更换光驱硬盘支架、拆光驱面板 T400 T440
拆光驱.硬盘装支架的环节就不多说了.主要说下拆光驱面板. 先拿细物(区别针.回形针),捅这个洞,就能把光驱仓打开弹出来后,反过来,这里有个卡扣放大看,按住这卡扣,然后往外掰,把面板掰出来 掰出来的面板 ...
- Protobuf 文件生成工具 Prototool 命令详解
Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言 ...
- c的scanf为什么比c++的cin快
很早就知道,c的scanf(printf)比c++的快.刷题时尤其明显,在这上面超时是常有的事儿. 但,这是别人告诉我的,c快. 为什么快? 从网上借鉴一个例子做个简单测试: 1.cpp // ...
- WCF大文件传输【转】
http://www.cnblogs.com/happygx/archive/2013/10/29/3393973.html WCF大文件传输 WCF传输文件的时候可以设置每次文件的传输大小,如果是小 ...