PHP笔记--语言基础

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种定义方式,单引号(')、双引号(")和界定符(<<<)。双引号中包含的变量会自动替换成实际数值

使用单引号只需对单引号转义即可,使用双引号要对双引号和“$”转义



界定符(<<<)从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层)是跳出当前次循环。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值