PHP笔记--语言基础
2016-09-04 12:59
507 查看
PHP标记风格:
xml风格: <?php ... ?>
脚本风格: <script language="php"> ... </script>
简短风格: <? ... ?> 需在php.ini中设置
ASP风格: <% ... %> 需在php.ini中设置
PHP注释:
C++风格单行注释(//)
C风格多行注释(/* ... */)
Shell风格(#)
单行注释中不要出现“?>”标志
PHP数据类型:
一共支持8种原始类型,4种标量类型:boolean(布尔)、integer(整形)、float/double(浮点型)和string(字符串型);2种符合类型:array(数组)和object(对象);2种特殊类型:resource(资源)与null。
boolean:在php中符合c中其他类型和boolean型之间的转换:0、0.0、"0"、空白字符串("")、只声明没赋值的数组等可转换为false。
string:3种定义方式,单引号(')、双引号(")和界定符(<<<)。双引号中包含的变量会自动替换成实际数值
使用单引号只需对单引号转义即可,使用双引号要对双引号和“$”转义
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/11/cee540a5927440fd5159901f666d50b3)
界定符(<<<)从php4.0开始支持。
float:32位系统中有效范围是1.7E-308~1.7E+308, 标准格式和科学计数法两种表示方式。php4.0之前为double, 二者无差别
array:一组类型相同的变量的集合,每个元素有键值对组成
$array0 = ('value1','value2'...);
或者
$array[key] = 'value';
或者
$array = array(key1 => value1, key2 = value2...);
关于key的转换问题,以后再说
object:参考 PHP笔记--面向对象
resource://TODO
null: 不区分大小写,被赋予空值的情况有一下3种:还没有附任何值、被赋值null、被unset()函数处理过的变量
is_null()用来判断变量是否为null,为null返回true。unset()用来销毁指定的变量,从php4开始unset不再有返回值
PHP数据类型转换:
(type):type除null和resource外都可以,不会改变原变量
或者bool settype(mixed var, string type):type除resource外都可以,会改变原变量
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/11/de7acaa4887c2e9788af42229fa8ef5e)
PHP常量:
声明语法格式:define(string constant_name, mixed value, case_sensitive=true)
constant_name: 必选,常量名称
value: 必选,常量值
case_sensitive: 可选,指定大小写是否敏感,true为不敏感
获取常量值: 一、直接由常量名获取,二、mixed constant(string const_name); const_name可为常量名称或者存储常量名的变量
判断常量是否定义:bool defined(string
const_name);
预定义常量:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/11/b73cc9d66e00a9939b1f91c659603efc)
PHP变量:
用$和标识符表示,区分大小写
变量赋值:直接赋值(按值传递)和引用赋值(按址传递),类的直接赋值也是引用方式,和java类似
变量作用域:
局部变量:函数内定义的,函数结束即清除
全局变量:定义在函数外,作用域是整个php文件,在用户自定义函数内不可用(使用global声明全局变量可以用),
静态变量:函数结束后仍保留,再次进入仍可使用,使用static声明
允许动态改变一个变量的名称,工作原理是该变量的名称又另一个变量的值来决定,多加一个 $
将 $ 理解长c语言中的 * 的话,有点类似指针的意思
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/11/80fa79ede3f6d797fd838202bd5d7933)
运算符:
%求余,被除数为负,结果也为负
字符串云算符:只有一个 . 。 用于连接字符串,+只能用于算数运算,在字符串使用+,会将字符串转换成整型再相加
位运算符:and、or相当于 &&、||,只是优先级不同。xor(异或)
比较运算符:===(恒等)、!==(不恒等),会比较值和类型
错误控制运算符:对出现错误的表达式隐藏,只是隐藏不显示,错误依然存在,在表达式前加上@即可
$err = @(5/0);
其它未介绍的运算符基本和java中一样
各个运算符的表示和优先级://TODO
函数:
function fun_name($str1,$str2...){
......
}
参数传递:按值传递、按址传递、默认参数三种,默认参数必须放在最后,从php5开始,默认值也可以通过引用传递
函数返回值:return 或者 return();
变量函数:用一个变量值代替函数名
$func = 'come';
$func()就等效于come();
对函数的引用:
对函数的引用,就是对函数返回结果的引用。注意“&”的使用
function &example($tmp=0){ // 定义一个函数,加"&"
return $tmp;
}
$str = &example('看到了');//声明一个函数引用$str,也要有&
echo $str; // 看到了取消引用:unset(); 只是断开变量名(引用的变量名)和变量内容之间的绑定,不会销毁变量内容
PHP编码规范://TODU
流程控制语句:
条件控制不再介绍,
基本循环控制不再介绍,
foreach:在php4中用来遍历数组,在php5中也可用来遍历对象
foreach(array_expression as $value)
statement;
或
foreach(array_expression as $key=>$value)
statement;
如果遍历的数据类型不对,会出现错误,使用is_array()函数判断变量是否是数组类型
$str = [1=>'lyc',2=>'LYC','ii'=>'II'];
foreach ($str as $value)
echo $value.'<br/>';
foreach ($str as $key=>$value)
echo $key.'=>'.$value.'<br/>';
class Lyc{
public $name = 'lyc';
public $age = 0;
}
$ss = new Lyc();
foreach ($ss as $key=>$value){
echo $key.'=>'.$value.'<br/>';
}流程控制的另一种写法:
对于if、while、for、foreach、switch语句,可以使用 : 代替 { 。使用endif;、endwhile;、endfor;、endforeach;和endswitch;代替 } 。
break、contonue; 除一般用法外,也可在后面跟一整数,用来指定一次跳出几层循环,特别注意continue后面跟整数的效果。
continue;和continue 1;效果是一样的。对于continue $num;里面的$num-1层会直接跳出,最外一层(里面数第$num层)是跳出当前次循环。
xml风格: <?php ... ?>
脚本风格: <script language="php"> ... </script>
简短风格: <? ... ?> 需在php.ini中设置
ASP风格: <% ... %> 需在php.ini中设置
PHP注释:
C++风格单行注释(//)
C风格多行注释(/* ... */)
Shell风格(#)
单行注释中不要出现“?>”标志
PHP数据类型:
一共支持8种原始类型,4种标量类型:boolean(布尔)、integer(整形)、float/double(浮点型)和string(字符串型);2种符合类型:array(数组)和object(对象);2种特殊类型:resource(资源)与null。
boolean:在php中符合c中其他类型和boolean型之间的转换:0、0.0、"0"、空白字符串("")、只声明没赋值的数组等可转换为false。
string:3种定义方式,单引号(')、双引号(")和界定符(<<<)。双引号中包含的变量会自动替换成实际数值
使用单引号只需对单引号转义即可,使用双引号要对双引号和“$”转义
界定符(<<<)从php4.0开始支持。
//结束标识符必须单独另起一行,并且不允许有空格,在标识符前后不有其他符号或字符 echo $string = <<< str 这是要输出的字符串; 这是要输出的字符串; 这是要输出的字符串; str;integer:在32位操作系统中有效数值范围 -2147483648~+2147483647,可以用十进制、八进制(0)、十六进制(0x)表示,八进制出现非法数字,后面的会被忽略,十六进制出现非法字符直接出错
float:32位系统中有效范围是1.7E-308~1.7E+308, 标准格式和科学计数法两种表示方式。php4.0之前为double, 二者无差别
array:一组类型相同的变量的集合,每个元素有键值对组成
$array0 = ["value0","value1","value2"]; $array1[1] = 'value1'; $array1['lyc'] = 'value2'; $array1[2.5] = 'value3'; // key值会进行相应转换 $array1['234'] = 'value3'; $array2 = [ "lyc" => "value1", 0 => "value2", 2 => "value3" ]; $array3 = ['haha',4 => 'aaa', 6.8 => 'ddd','dfdffd','rrrrr'];在一些版本中,可以这样写:
$array0 = ('value1','value2'...);
或者
$array[key] = 'value';
或者
$array = array(key1 => value1, key2 = value2...);
关于key的转换问题,以后再说
object:参考 PHP笔记--面向对象
resource://TODO
null: 不区分大小写,被赋予空值的情况有一下3种:还没有附任何值、被赋值null、被unset()函数处理过的变量
is_null()用来判断变量是否为null,为null返回true。unset()用来销毁指定的变量,从php4开始unset不再有返回值
PHP数据类型转换:
(type):type除null和resource外都可以,不会改变原变量
或者bool settype(mixed var, string type):type除resource外都可以,会改变原变量
$int = 12345; echo (bool)$int; // 1 (boolean) echo $int; // 12345 settype($int, 'boolean'); echo $int; // 1 (boolean)PHP数据类型检测:
PHP常量:
声明语法格式:define(string constant_name, mixed value, case_sensitive=true)
constant_name: 必选,常量名称
value: 必选,常量值
case_sensitive: 可选,指定大小写是否敏感,true为不敏感
获取常量值: 一、直接由常量名获取,二、mixed constant(string const_name); const_name可为常量名称或者存储常量名的变量
判断常量是否定义:bool defined(string
const_name);
预定义常量:
PHP变量:
用$和标识符表示,区分大小写
变量赋值:直接赋值(按值传递)和引用赋值(按址传递),类的直接赋值也是引用方式,和java类似
变量作用域:
局部变量:函数内定义的,函数结束即清除
全局变量:定义在函数外,作用域是整个php文件,在用户自定义函数内不可用(使用global声明全局变量可以用),
静态变量:函数结束后仍保留,再次进入仍可使用,使用static声明
$lycLyc = 0; $lycGlobal = 0; function lyc(){ static $lycStatic = 0; //第一次进入函数执行,以后不再执行 ++$lycStatic; //每次进入函数都会执行 $lycLyc = 0; // 和上面的不是同一个 global $lycGlobal; // 函数外的 };可变变量:
允许动态改变一个变量的名称,工作原理是该变量的名称又另一个变量的值来决定,多加一个 $
将 $ 理解长c语言中的 * 的话,有点类似指针的意思
$lyc0 = 'LYC0'; $lyc1 = 'LYC1'; $lyc = 'lyc0'; echo $$lyc; // LYC0 $lyc = 'lyc1'; echo $$lyc; // LYC1预定义变量:
运算符:
%求余,被除数为负,结果也为负
字符串云算符:只有一个 . 。 用于连接字符串,+只能用于算数运算,在字符串使用+,会将字符串转换成整型再相加
位运算符:and、or相当于 &&、||,只是优先级不同。xor(异或)
比较运算符:===(恒等)、!==(不恒等),会比较值和类型
错误控制运算符:对出现错误的表达式隐藏,只是隐藏不显示,错误依然存在,在表达式前加上@即可
$err = @(5/0);
其它未介绍的运算符基本和java中一样
各个运算符的表示和优先级://TODO
函数:
function fun_name($str1,$str2...){
......
}
参数传递:按值传递、按址传递、默认参数三种,默认参数必须放在最后,从php5开始,默认值也可以通过引用传递
函数返回值:return 或者 return();
变量函数:用一个变量值代替函数名
$func = 'come';
$func()就等效于come();
对函数的引用:
对函数的引用,就是对函数返回结果的引用。注意“&”的使用
function &example($tmp=0){ // 定义一个函数,加"&"
return $tmp;
}
$str = &example('看到了');//声明一个函数引用$str,也要有&
echo $str; // 看到了取消引用:unset(); 只是断开变量名(引用的变量名)和变量内容之间的绑定,不会销毁变量内容
PHP编码规范://TODU
流程控制语句:
条件控制不再介绍,
基本循环控制不再介绍,
foreach:在php4中用来遍历数组,在php5中也可用来遍历对象
foreach(array_expression as $value)
statement;
或
foreach(array_expression as $key=>$value)
statement;
如果遍历的数据类型不对,会出现错误,使用is_array()函数判断变量是否是数组类型
$str = [1=>'lyc',2=>'LYC','ii'=>'II'];
foreach ($str as $value)
echo $value.'<br/>';
foreach ($str as $key=>$value)
echo $key.'=>'.$value.'<br/>';
class Lyc{
public $name = 'lyc';
public $age = 0;
}
$ss = new Lyc();
foreach ($ss as $key=>$value){
echo $key.'=>'.$value.'<br/>';
}流程控制的另一种写法:
对于if、while、for、foreach、switch语句,可以使用 : 代替 { 。使用endif;、endwhile;、endfor;、endforeach;和endswitch;代替 } 。
break、contonue; 除一般用法外,也可在后面跟一整数,用来指定一次跳出几层循环,特别注意continue后面跟整数的效果。
continue;和continue 1;效果是一样的。对于continue $num;里面的$num-1层会直接跳出,最外一层(里面数第$num层)是跳出当前次循环。
相关文章推荐
- 《PHP求职宝典》--PHP语言基础笔记2
- 《PHP求职宝典》--PHP语言基础笔记
- 《PHP求职宝典》--PHP语言基础笔记
- PHP学习笔记-PHP语言基础3
- php语言基础内功笔记
- 《PHP求职宝典》--PHP语言基础笔记2
- PHP学习笔记-PHP语言基础1
- 《PHP求职宝典》--PHP语言基础笔记3
- 《PHP求职宝典》--PHP语言基础笔记
- 《PHP求职宝典》--PHP语言基础笔记3
- php语言基础学习笔记
- 【个人笔记】002-PHP基础-01-PHP快速入门-02-PHP语言相关介绍输
- php笔记(2)——语言基础
- php语言基础学习笔记
- 《PHP求职宝典》--PHP语言基础笔记2
- 《PHP求职宝典》--PHP语言基础笔记
- 《PHP求职宝典》--PHP语言基础笔记2
- PHP学习笔记(五)--基础知识之语言结构语句
- PHP学习笔记(三)PHP语言基础
- PHP学习笔记-PHP语言基础2