脚本PHP标记符
- 一般的:php以
<?php
开头,以?>
结尾,如果文本全都是php内容,结尾可不写。 -
<?
和?>
是一对【不常用的标识符,默认是没有激活的,如果要激活则修改/etc/php5/
下的cli/
或fpm/
下的php.ini
中short_open_tag
为short_open_tag = On
就可以了
cli/
是在命令行能够执行,fpm/
是在网站上可以执行
PHP条件语句
<?php if (true): ?>
为真时,执行此行
<?php else: ?>
为假时执行此行
<?php endif; ?>
字典、数组遍历
$array = array(
"1" => "a",
"2" => "b",
"3" => "c",
"4" => "d",
"5" => "e",
);
foreach ($array as $key => &$value){
$value = "cc";
echo $key."----->".$value."\n";
unset($value);
}
foreach循环中如果value用了引用,数组最后一个元素的value引用在循环之后仍会保留。应该用unset()来将其消毁。
PHP几个简单的函数
- 打印某一个变量的类型和值:
var_dump()
$a = "abc";
var_dump($a); //string(3) "abc"
print_r("abc");
- 返回一个变量的所有数据
$arr = var_export($array);
- 获取某个变量的类型名称:
gettype()
echo gettype($a); //string
- 判断一个变量是否为某个类型:
is_int is_bool is_string
if(is_string($a)){
echo "\n is string"; //is string
}
- 强制装换:
set type($var, $type)
或($type)$a
(int)$a;
settype($a,int);
PHP数据类型
$foo = "0"; // $foo (ASCII 48)
$foo += 2; // $foo (2)
$foo = $foo + 1.3; // $foo (3.3)
$foo = 5 + "10 Little Piggies"; // $foo (15)
$foo = 5 + "10 Small Pigs"; // $foo (15)
$foo = "5bar"; // string
$bar = true; // boolean
settype($foo, "integer"); // $foo 现在是 5 (integer)
settype($bar, "string"); // $bar 现在是 "1" (string)
- Boolean 布尔类型
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); //bool(true)
var_dump((bool) -2); //bool(true)
var_dump((bool) "foo"); //bool(true)
var_dump((bool) 2.3e5); //bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>
- Integer 整型 (php不可以整除)
int(3/2) //1
round(3/2) //2 四舍五入
- String 字符串类型
单引号:abc\'efg\r\n
,内部单引号可以转义,\r\n不转义,内部变量不展开
双引号:abc\'efg\r\n
,可以转义,内部变量展开
$name = "xq";
echo <<< ETO
My name is "$name".
Now, I am printing something.
ETO;
- Array 数组
key 可以是 integer 或者 string。value 可以是任意类型.
此外 key 会有如下的强制转换:
1> 包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。
2> 浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。
3> 布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。
4> Null 会被转换为空字符串,即键名 null 实际会被储存为 ""。
数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type
$array = array(
"foo" => "bar",
"bar" => "foo",
);
//自PHP 5.4 起
$array = [
"foo" => "bar",
"bar" => "foo",
];
$arr = [
1 => "a",
"1" => "b",
1.5 => "c",
true => "d",
];
// 值为: 1 => "d"
$arr1 = array(
42 => 24,
);
echo $arr1[42]; //值为:24
echo $arr1["42"]; //值为:24
echo $arr1["42.5"];//值为:NULL,不打印
echo $arr1[42.5]; //值为:24