[转帖]PHP基础学习笔记之基本语法_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2197 | 回复: 0   主题: [转帖]PHP基础学习笔记之基本语法        下一篇 
landy
注册用户
等级:新兵
经验:61
发帖:72
精华:0
注册:2011-12-31
状态:离线
发送短消息息给landy 加好友    发送短消息息给landy 发消息
发表于: IP:您无权察看 2014-11-24 10:21:34 | [全部帖] [楼主帖] 楼主

     php基础学习已经差不多了,但是为检验自己的学习掌握情况,把php基础知识回顾复习了一下

第一个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,系统首先读取&&,知道这是个与,于是开始执行&& amp; amp; amp;前面的语句,发现返回true就再 执行&&后面的语句,发现返回false就不会再执行&&后面的语句了,因为&&逻辑,只要有一个 false 整个表达式就变成false


11.控制结构
11.1 if语句

 if(){
      //...
}elseif{
//...
}else{
if(){
}
}


11.2 switch语句

 switch(){
      case expr:
      //...
      break;
      case expr2:
      //...
      break;
      default:
      //...
      break;
}


如:

 switch($a){
      case 'go':
      //...
      break;
      case 'come':
      //...
      break;
      default:
      //...
      break;
}


11.3 while循环

 while(){
      //...
}


11.4 for循环

 for(expr1;expr2;expr3){
      //...
}


表 达式计算顺序
expr1 当第一次遇到for循环时执行一次。执行完,开始循环迭代
expr2 每次迭代前计算它。如果结果为true就执行代码块
expr3 在每次迭代后计算(执行)它,结果被忽略
expr2 迭代重新开始
11.5 foreach循环

 foreach($arrays as $item){
      echo $item;
}


11.6 中断循环
break 终止当前循环,后面可以接整数参数,表示跳出多少层循环。
如:break 2;
continue 跳过本次循环进入下次循环,后面可以接整数参数,表示跳过几次循环
如:continue 2;
12 函数
function 函数名(){

 //block
}


12.1用return 可停止函数运行
如:

 function aa(){
      return;
}


12.2 参数
引用传递

 function aaa(&$xxx){
}


12.3默认值

 function aaa($a,$b = 'xxx'){}


12.4可变数量的参数

 function xxx(){}


.func_num_args() 多少个参数
.func_get_arg()给定的索引位置返回参数
.func_get_args()在数组中返回所有参数
如:

 function a(){
      $all_params = func_get_args();
}


12.5返回值

 function xxx(){


return 值;

 }


若想返回多个值,可把结果组成数组并返回
函数支持嵌套,如:函数a中定义了函数b,那 么只有在函数a被调用了一次后,函数b的定义才会生效,PHP没有闭包
函数名字大小写不敏感

引用
1.变量引用

 $b=&$a;


这 样操作$b就是操作$a
2.函数引用
用来实现对函数返回结果的引用
如:

 function $func(){
      static $var = 0;
      return $var;
}
$a=&func();
$a=1;
$b=&func();
echo $b;


结果为:

 1


$a的复制对函数的返回值造成了影响,导致$b的值被赋成了$a的值

3.引用释放

 $a=1;
$b=&a;
echo $b;
unset($b);//变量$b被释放,但$a被保留
echo $a;


使用unset释放引用后不会小鼠引 用中的值

12.6变量范围
脚本内变量为脚本的全局变量,函数内要使用需要用global
如:

 $a = 1;
$b = 2;
function a(){
      global $a,$b;
      echo $a+$b;
}


通过这种访问在函数 推出时会记忆变量的任何改动,和引用差不多
12.7 超级全局变量
$GLOBALS 包含正在执行的脚本内部全局可用的所有变量的引用

 $_SERVER
$_GET
$_POST
$REQUEST
$_SESSION
$_COOKIE


$_ENV 保存PHP语言引擎所在进程的环境变量。数组的键是变量名
$php_errormsg 执行当前脚本时生成的最新错误信息,只在发生错误的代码范围内可用,php.ini中的track_errors配置要打开
12.8函数范围的可 用性
不管在定义前定义后调用,都可用。
12.9 把函数作为变量

 function a($msg){}
function b($msg){}
function c($msg){}
$g = 'a';
$g(msg);


13.包含文件

 inclue require


如:include('a.php');require('a.php');
inclue是在调用include语句时 加载文件
require是在脚本开始加载文件
区别:
1.require不管语句是否执行都会加载,include相反
如:

 $a=1;
if($a==2)require('a.inc'); //条件不成立但也加载了,但没有被调用


2.文件不存在时错误处理方式不同
require抛出知名错误并终止脚本,include只有 警告信息

13.1 路径
如果没指明明确路径,PHP会在当前目录中查找包含的文件,然后查找php.ini文件中的 include_path设置中列出的目录,在unix下分割字符是冒号,在window下是分号
如:

 include_path=".:/a/f/"
include_path=".;c:/a/f"


13.2 包含文件返回值

 a.php
<?php
return pi();
?>
b.php
<?php
$k=include('a.php');
?>


13.3 防止重复载入

 require_once();
include_once();


13.4 自动载入
在php.ini的 auto_prepend_file和auto_append_file 在每次执行脚本之前和之后要包含的文件

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论