php入门教程之常用数据类型和基本语法
一 PHP常用数据类型
1.基本数据类型
1.1整型
1.2小数型(浮动数) 包含单精度和双精度
1.3布尔类型 (表示真,和 假)
1.4字符串
2.复合数据类型
2.1数组(array)
2.2对象 (object)
3.特殊数据类型
3.1null
3.2资源类型(resource)
二 PHP的基本语法
1.PHP 定义变量必需以 $ 这个符号开头,区分大小写。
2.变量的名称,应当以字母或者下划线开头,不要用数字开头,也不要用特殊字符开头。
第一个PHP程序
代码如下 | 复制代码 |
<?php echo "Hello World!"; ?> |
1 注释
1.1多行
/*
xxxx
*/
1.2单行
//xxxxx
2.赋值
$a = 'test';
2.1 检查变量是否已声明
isset($a)
2.2 释放变量
unset($a);
2.3 静态变量
static $a;
静态变量可在一个函数几次调用中保持数值,而不会被系统释放,但只能在声明它的函数集中访问到,只能在第一次声明时初始化。
3. 基本类型
3.1 数字类型
3.1.1整数(integer,关键字int)
.整数可用8进制 10进制 16进制 表示
$a=123; //10进制
$b=0123; //8进制
$c=0x123; //16进制
.由于操作系统不同整数精度变化很大,但32位是最常见的
3.1.2浮点(float,关键字float,64位浮点数,精度14位)
.PHP中float和double是等同的
.使用浮点数切记:他们只是近似值
如:2.5在内部常被表示为2.499999999
又如:
if(0.7+0.1>=0.8){
echo 'a';
}else{
echo 'b';
}
返回值为b,这取决于浮点数的确切实现方式,推荐做法是避免使用浮点值做比较
3.2 字符串
.用单引号或双引号包围
如:echo "Hello"; echo 'Hello';
.双引号中的变量会被解释,单引号中的则不会
如:var $name = 'jano';
echo "my name is $name.";//显示 my name is jano
echo 'my name is $name'; //显示 my name is $name
.双引号中的变量可用{}包围来区分变量和后面的字母
如:var $n = "my name is {$name}Yu";//如果没有{}就无法区分变量和字符
.heredoc
$a = <<< HTM
skjdfjsd
lksdfjsdlf
HTML; //后面的表示必须顶在最前面
.获取字符串中的某个字符
$a = 'Hello';
echo $a{1}; // 显示e
echo $a[1]; // 显示e
推荐使用第一种写法可以和数组区分开
3.3 布尔值
true false
4.常用函数
. nl2br 吧字符串中的换行符转化成<br />
如:echo nl2br($a);
.var_dump
显示变量类型和值,如:var_dump($a);
.print_r
var_dump加强版,打印对象类型和内容,数组则打出所有元素,类对象则打印所有成员
如:$a = array(1,2,3,4,5);
print_r($a);
5.数组
数组用array方法声明
例:
$a = array('a','b','c');
$a = array('a','b',array(1,2,3));
.默认从索引0开始赋值
如:$a[]='a'; //$a[0]='a';
$a[]='b'; //$a[1]='b';
.使用字符串值做索引
如:
$a = array('car'=>'Ferrari','Number'=>21,'City'=>'CQ');
echo $a['car'];
.遍历并更改数组元素值
foreach($array as $key=>&$value){// &$value
//...
}
6.特殊类型和值
.NULL 区分大小写,表示无值,从没赋值,用unset清除
.资源
7.强制类型转换
(int)$a
(float)$a
(string)$a
(bool)$a
(array)$a
(object)$a
.特殊的
(int)"0123";//返回123,没有把8进制0123转换为10进制数字
(int)"123 mu tou ren";//返回123
(int)"mu tou ren 123";//返回0,因为转换只从第一个字符开始读,发现非数字立即停止
.转换为布尔值
非空非零则为true(包括正数和负数),0为false
包含0个元素的数组为false
NULL为false
转换为整数
.浮点转换为整型
小数点后的数字舍弃,如果超过证书有效位,结果可能是0或者最小负数
.布尔转换为整型
true为1
false为0
.字符串转换为整型
对字符串左侧第一位进行判断。如果第一位是数字,则会从第一位开始将读取到数字转换成整数。如果第一位不是数字结果为0.
.PHP没有提供其他类型转换为整数的方法
转换为浮点数
.整数转换为浮点数
结果不变
.布尔转换为浮点数
true为1
false为0
.字符串转换成浮点数
与整数类似
.PHP没有提供其他类型转换为浮点数的方法
转换为字符串
将非字符串转换为字符串的方法是在变量前使用“(string)”强制转换。
规则如下:
1.整型或浮点型:结果为其值
2.布尔型:true转换为'1' , false转换为空字符串
3.对象或数组:如果被转换的变量是对象或数组,则转换结果将为字符串对象或字符串数组,需要根据实际情况进行分析。
4.资源类型:返回资源标识号
8.类型判断与获取
.转换成数组
在变量前用“(array)”强制转换。将变量转换成员变量数据类型相同的数组,数组中只有一个元素。
如:
$a=1;
print_r((array)$a);
结果:
Array
(
[0]=> 1
)
.转换为对象
在变量前用“(object)”强制转换。将生成一个新对象,其中名为scalar的成员变量将包含原变量的值。如:
$a=1;
$o = (object)$a;
echo $o->scalar;
使用函数进行数据转换
bool settype(var, string type)
type值: boolean,integer,float,string,array,object,null
.判断类型函数
is_integer 如:is_integer($a); //返回true或false
is_float
is_double
is_real
is_int
is_long
is_numeric
is_string
is_bool
is_array
is_object
is_null
is_resource
is_scalar 是否为一个标量
.类型获取
gettype($a);
9.变量和常量
.常量
define('NUM_USR','0');
$u = NUM_USR;
.引用
$a=0;
$b = &$a;
$b++;
echo $a;//显示1,因为$b是$a的引用,$b改变就表示$a改变
10.操作符
10.1 数学操作符
+ - * / %(取余)
10.2 比较运算符
==
=== 值相同,类型相同
!=
<> 和!=一样都是不等于
!== 值相同,类型不同
<
>
<=
>=
10.3 逻辑运算符
and && 与
or || 或
xor 异或,若一个为true,但不是两个都为true,则结果为true
! 非
10.4 按位操作
& 按位与
| 按位或
^ 按位异或
~ 按位非
<< 左移位
>> 右移位
10.5 三元操作符
表示问号前面的表达式是否为true,是则返回冒号前面的值,不是则返回冒号后面的值
如:
$c = $a > $b ? 1:2;
echo $a>$b ? "hello":"no";
.下面两个语句是等价的
$a = ($b != 'china') ? true : false;
$a = $b != 'china';
10.6 其他操作符
++ 自增
-- 自减
@ 忽略特定函数的调用失败报错,如:$u=@file(xxx);
. 字符串连接操作,如:$a = 'hello'.'world'; $a = 'hello'.$a;
11.7 特殊的逻辑运算符表达式
$a = 0;
$b = 100;
echo $a || $b;//$a转换为bool值为true时,echo $a,否则echo $b,不管$b表达式是否为true,此表达式会始终显示100
echo $a && $b;//将什么都不显示,因为整个表达式$a && $b返回false
$a = 1;
$b = 0;
echo $a && $b;//将什么都不显示,因为整个表达式$a && $b返回false
echo $a && $b;//始终显示$a
$a = 1;
$b = 0;
$a && $b=12;
echo $b;//显示12,$a是否为true,为true就会执行$b=12,系统首先读取&&,知道这是个与,于是开始执行&&前面的语句,发现返回true就再 执行&&后面的语句,发现返回false就不会再执行&&后面的语句了,因为&&逻辑,只要有一个false 整个表达式就变成false
个人做的笔记.....用于借鉴,如有错请指出,谢谢
代码如下 | 复制代码 |
<?php Class 对象实例说明( 普通类 ) *******************************************/ */ Class 对象实例说明( 抽象类 ) *******************************************/ /******************************************* Class 对象实例说明( 继承类 ) *******************************************/ Class 对象实例说明( 接口 ) *******************************************/ 什么情况下使用接口 **********************************/ ?> |
小结
在类内部访问静态成员属性或者方法,使用 self::(注意不是 $slef),如:
代码如下 | 复制代码 |
slef:: $country |
在子类访问父类静态成员属性或方法,使用 parent::(注意不是 $parent),如:
代码如下 | 复制代码 |
parent:: $country |
外部访问静态成员属性和方法为 类名/子类名:: ,如:
代码如下 | 复制代码 |
Person::$country |
但静态方法也可以通过普通对象的方式访问。
•类/对象 函数
•__autoload — 尝试加载未定义的类
•call_user_method_array — 调用一个用户方法,同时传递参数数组(已废弃)
•call_user_method — 对特定对象调用用户方法(已废弃)
•class_alias — 为一个类创建别名
•class_exists — 检查类是否已定义
•get_called_class — 后期静态绑定("Late Static Binding")类的名称
•get_class_methods — 返回由类的方法名组成的数组
•get_class_vars — 返回由类的默认属性组成的数组
•get_class — 返回对象的类名
•get_declared_classes — 返回由已定义类的名字所组成的数组
•get_declared_interfaces — 返回一个数组包含所有已声明的接口
•get_declared_traits — 返回所有已定义的 traits 的数组
•get_object_vars — 返回由对象属性组成的关联数组
•get_parent_class — 返回对象或类的父类名
•interface_exists — 检查接口是否已被定义
•is_a — 如果对象属于该类或该类是此对象的父类则返回 TRUE
•is_subclass_of — 如果此对象是该类的子类,则返回 TRUE
•method_exists — 检查类的方法是否存在
•property_exists — 检查对象或类是否具有该属性
•trait_exists — 检查指定的 trait 是否存在
PHP基本语法和数据类型:
(1)、PHP基本语法:
1、htm 和 php 混编
2、一个语句以 ; (分号结束)
3、如何定义一个变量,和变量的使用
(2)、PHP数据运算类型
四种标量类型:
boolean(布尔型) 理解为真假型
integer(整型)
float(浮点型,也作“double”) 理解为小数型
string(字符串)
两种复合类型:
array(数组)
object(对象)
(3)PHP五种运算类型
1、算术运算
2、赋值运算(如:$a=100)
3、比较运算(如:$a<$b)
4、逻辑运算(如:$a&&$b)
5、递增凝递减运算(如:$a++)
(4)switch条件语句
switch条件语句
<?php
$i=1;
switch($i){
case 0;
echo “i的值为0″;
break;
case 1;
echo “i的值为1″;
break;
case 2;
echo “i的值为2″;
break;
default: echo “以上的几个值都不是”;
}
?>
break n 跳出循环语句
break n跳出n层循环
例:
<?php
for($i=1;$i<=5;$i++){
echo “i=”.$i.”<br>”;
for($j=1;$j<=5;$j++){
echo “ j=”.$j.”<br>”;
for($k=1;$k<=5;$k++){
echo “ k=”.$k.”<br>”;
if($k==2){
break;
}
}
if($j==3){
break 2;
}
}
echo “<br>”;
}
?>
(5)do while循环
<?php
//先执行一次再判断
do{
echo “执行循环”;
$a++;
}while($a>100);//注意这里有一个分号
echo “<br>”;
//先判断再执行
while($a>100){
echo “执行循环”;
$a++;
}
?>
PHP数组常用到的函数
foreach($arr as $key=>$val){}//遍历数组
count($arr)//统计数组的长度
is_array($arr)//判断数组
explode(“key”,$str)//分割字符串成数组
在php中获取url地址我们有很多函数可以使用,主要是全局变量server为我提供了不少方法,下面我们一起来看看吧。常用函数
代码如下 | 复制代码 |
//获取网页地址 //获取网址参数 //获取用户代理 //获取完整的url //包含端口号的完整url //只取路径 |
看个例子,可以获取完整url
代码如下 | 复制代码 |
<?php function curpageurl() if ($_server["https"] == "on") if ($_server["server_port"] != "80") |
例
代码如下 | 复制代码 |
$array = array(1,2,3,4,5,6); break 2; |
例
代码如下 | 复制代码 |
<?php //执行嵌套循环,外层循环3次,内层循环2次。当执行到第2次外层循环时,使用break跳出,不执行其内层循环。 |
上述代码的输出页面结果如下:
外层循环0 开始
内层循环0-0
内层循环0-1
外层循环0 结束
外层循环1 开始
外层循环1 结束
外层循环2 开始
内层循环2-0
内层循环2-1
外层循环2 结束
上面的代码很容易理解,break用于跳出当前层次的循环。不过,与Java等编程语言不同的是,在PHP中,我们还可以在关键字break后跟上一个数字,该数字表示需要跳出的循环层数,这样可以使用一个break语句,直接跳出多重循环。例如:
代码如下 | 复制代码 |
<?php //执行嵌套循环,外层循环3次,内层循环2次。当执行到第2次外层循环时,使用break 2跳出,直接跳出2层循环 |
上述示例代码输出的页面结果如下:
外层循环0 开始
内层循环0-0
内层循环0-1
外层循环0 结束
外层循环1 开始
因此,在PHP中,我们可以使用break后跟上指定的数字,来直接跳出指定层数的循环。
注意:break后跟的数字,只能为正整数,并且不能超过实际可以跳出的循环层数。否则会报致命错误(Fatal Error)。
相关文章
php中浮点型(float)和整型(integer)数据类型详解
文章分析了关于php中浮点型(float)和整型(integer)数据类型的用法区别以及在那种情况下会出现数据长度不够。 取值只能为True或者False,当其他类型转化为boolean类...2016-11-25- 本篇文章主要是对c#中数据类型占用的字节数进行了详细的介绍。需要的朋友可以过来参考下,希望对大家有所帮助...2020-06-25
- 这篇文章主要给大家介绍的是关于Lua语言新手入门的简单教程,文中通过示例代码一步步介绍的非常详细,对各位新手们的入门提供了一个很方便的教程,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。...2020-06-30
- 虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number、String、Boolean、Object、Udefined、Null。其中,Object属于复杂数据类型,Object 由无序的键值对组成。其余几种都属于简单数据类型。注意:变量...2015-10-21
- 这篇文章主要为大家详细介绍了JavaScript实现数据类型的相互转换,感兴趣的朋友可以参考一下...2016-03-09
- 本文主要介绍了C#的四种基本数据类型的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 这篇文章主要介绍了基于PostgreSQL和mysql数据类型对比兼容,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-25
- 这篇文章主要介绍了C#线程入门教程之单线程介绍,本文讲解了什么是进程、什么是线程、什么是多线程等内容,并给出了一个单线程代码示例,需要的朋友可以参考下...2020-06-25
- 这篇文章主要给大家介绍了关于toString.call()通用的判断数据类型方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-29
- 这篇文章主要介绍了C#数据类型及其转换详解,在C#中,数据类型可以分为几种类型,今天小编通过本文给大家详细介绍,需要的朋友可以参考下...2020-07-10
- 这篇文章主要介绍了CocosCreator入门教程之用TS制作第一个游戏,对TypeScript感兴趣的同学,一定要看一下...2021-04-16
- JavaScript语言的基本语法要求有哪些呐?下面将为大家一一解答: 一、区分大小写 JavaScript语言区分字符大小写,两个字符串相同大小写不同,被认为是不同的字符串。JavaScript语言的关键字也区分大小写,按语法要求应...2015-11-24
- 这篇文章主要为大家分享了一个简单的javascript数据类型验证方法,感兴趣的小伙伴们可以参考一下...2016-01-05
- 这里主要讲到关于在php教程类的调用,申请明,使用以前各种类的实例方法与操作过程,让你清楚的知道php类的construct destruct clone call wake sleep用法。 简单购物车...2016-11-25
- 这篇文章主要介绍了C#中的不可变数据类型介绍(不可变对象、不可变集合),本文讲解了不可变对象、自定义不可变集合、Net提供的不可变集合、不可变优点、不可变对象缺点等内容,需要的朋友可以参考下...2020-06-25
- 这篇文章主要针对JavaScript数据类型整理的学习笔记,分享给大家,感兴趣的小伙伴们可以参考一下...2016-01-26
- 下面举一个很简单的?表达式的实现吧,其实它就是简单的if else哦。 <? $a = 5; //定义变数a=5 $b = 3; //定义变数b=5 $c = ($a==$b) ? ("yes") : ("no"); //如果...2016-11-25
- 这篇文章主要介绍了JS判断数据类型的几种常用方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-08
- 怎么去判断一个数据属于哪个数据类型,这个是很常见的操作,我们一般都会想到typeof和instanceof这两个常见的方法,但有时候这两种方法并不能满足我们的需求,下面这篇文章主要给大家介绍了关于JS中数据类型的正确判断方法,需要的朋友可以参考下...2021-08-26
- 为了实现这一目标,它需要我们在数据库系统的常用数据类型有充分的认识。下面我们来看一下mysql的重要数据类型1、数值类型可以划分为数值类型:整型,浮点十进制类型。所谓的“十进制”是指decimal和numeric,他们是同一类型...2014-05-31