2019独角兽企业重金招聘Python工程师标准>>>
PHP_Manual参考手册阅读笔记
PHP Manual中文手册阅读笔记(一):PHP基础知识
语言参考:
基本语法:
PHP标记:
当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php 和 ?>,这告诉 PHP 开始和停止解析二者之间的代码。
如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记
<?php echo "Hello world" ; // ... more code echo "Last statement" ; // 脚本至此结束,并无 PHP 结束标记
PHP的数据类型
PHP 支持 8 种原始数据类型。
四种标量类型: 1.boolean (布尔型)
2.integer (整型)
3.float (浮点型,也称作 double )
4.string (字符串)
两种复合类型: 1.array (数组)
2.object (对象)
最后是两种特殊类型: 1.resource (资源)
2.NULL (无类型)
为了确保代码的易读性,本手册还介绍了一些伪类型: 1.mixed (混合类型)
2.number (数字类型)
3.callback (回调类型)
<?php
$a_bool = TRUE ; // a boolean
$a_str = "foo" ; // a string
$a_str2 = 'foo' ; // a string
$an_int = 12 ; // an integer
echo gettype ( $a_bool ); // prints out: boolean
echo gettype ( $a_str ); // prints out: string
// If this is an integer, increment it by four
if ( is_int ( $an_int )) {
$an_int += 4 ;
}
// If $bool is a string, print it out
// (does not print out anything)
if ( is_string ( $a_bool )) {
echo "String: $a_bool " ;
}
?>
boolean (布尔型)
要指定一个布尔值,使用关键字 TRUE 或 FALSE 。两个都不区分大小写。 当转换为 boolean 时,以下值被认为是 FALSE :
1.布尔值 FALSE 本身
2.整型值 0(零)
3.浮点型值 0.0(零)
4. 空字符串,以及字符串 "0"
5.不包括任何元素的数组
6. 不包括任何成员变量的对象(仅 PHP 4.0 适用)
7. 特殊类型 NULL(包括尚未赋值的变量)
8. 从空标记生成的 SimpleXML 对象
integer (整型)
一个 integer 是集合 ? = {..., -2, -1, 0, 1, 2, ...} 中的一个数。 整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。 当从浮点数转换成整数时,将向下取整。
<?php
var_dump ( 25 / 7 ); // float(3.5714285714286)
var_dump ((int) ( 25 / 7 )); // int(3)
var_dump ( round ( 25 / 7 )); // float(4)
?>
浮点型(也叫浮点数 float,双精度数 double 或实数 real)
浮点数的表示方法
<?php
$a = 1.234 ;
$b = 1.2e3 ;
$c = 7E-10 ;
?>
比较浮点数方法
$a 和 $b 在小数点后五位精度内都是相等的。
<?php
$a = 1.23456789 ;
$b = 1.23456780 ;
$epsilon = 0.00001 ;
if( abs ( $a - $b ) < $epsilon ) {
echo "true" ;
}
?>
string (字符串)
一个字符串可以用 4 种方式表达:
1.单引号
2.双引号
3.heredoc 语法结构
<?php
class foo {
public $bar = <<<EOT
bar
EOT;
}
?>
4.nowdoc 语法结构(自 PHP 5.3.0 起)
array (数组)
可以用 array() 语言结构来新建一个数组。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。
array( key => value
, ...
)
<?php
$array = array(
"foo" => "bar" ,
"bar" => "foo" ,
);
// 自 PHP 5.4 起
$array = [
"foo" => "bar" ,
"bar" => "foo" ,
];
?>
object (对象)
要创建一个新的对象 object ,使用 new 语句实例化一个类:
<?php
class foo
{
function do_foo ()
{
echo "Doing foo." ;
}
}
$bar = new foo ;
$bar -> do_foo ();
?>
resource (资源)
使用getresourcetype — 返回资源(resource)类型
此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource ,将产生错误。
<?php
$c = mysql_connect ();
echo get_resource_type ( $c ). "\n" ;
// 打印:mysql link
$fp = fopen ( "foo" , "w" );
echo get_resource_type ( $fp ). "\n" ;
// 打印:file
$doc = new_xmldoc ( "1.0" );
echo get_resource_type ( $doc -> doc ). "\n" ;
// 打印:domxml document
?>
NULL (无类型)
string (字符串)在下列情况下一个变量被认为是 NULL :
1.被赋值为 NULL 。
2.尚未被赋值。
3.被 unset() 。
强制转换
允许的强制转换有:
1.(int), (integer) - 转换为整形 integer
2.(bool), (boolean) - 转换为布尔类型 boolean
3.(float), (double), (real) - 转换为浮点型 float
4.(string) - 转换为字符串 string
5.(array) - 转换为数组 array
6.(object) - 转换为对象 object
7.(unset) - 转换为 NULL (PHP 5)
PHP的变量
PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。
PHP 提供了大量的预定义变量。
PHP 可变变量
<?php
class foo {
var $bar = 'I am bar.' ;
var $arr = array( 'I am A.' , 'I am B.' , 'I am C.' );
var $r = 'I am r.' ;
}
$foo = new foo ();
$bar = 'bar' ;
$baz = array( 'foo' , 'bar' , 'baz' , 'quux' );
echo $foo -> $bar . "\n" ;
echo $foo -> $baz [ 1 ] . "\n" ;
$start = 'b' ;
$end = 'ar' ;
echo $foo ->{ $start . $end } . "\n" ;
$arr = 'arr' ;
echo $foo -> $arr [ 1 ] . "\n" ;
echo $foo ->{ $arr }[ 1 ] . "\n" ;
?>
来自 PHP 之外的变量【HTML 表单(GET 和 POST)】、REQUEST、HTTP Cookies
$userName = $_GET['username'];
$userName = $_POST['username'];
$userName = $_REQUEST['username'];
setcookie ( "username" , "linfeng" , time ()+ 3600 );
PHP的常量
可以用 define() 函数来定义常量,在 PHP 5.3.0 以后,可以使用 const 关键字在类定义之外定义常量。一个常量一旦被定义,就不能再改变或者取消定义。
常量和变量有如下不同:
常量前面没有美元符号($);
常量只能用 define() 函数定义,而不能通过赋值语句;
常量可以不用理会变量的作用域而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量。
Example #1 定义常量
<?php
define ( "CONSTANT" , "Hello world." );
echo CONSTANT ; // outputs "Hello world."
echo Constant ; // 输出 "Constant" 并发出一个提示级别错误信息
?>
Example #2 使用关键字 const 定义常量
<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const CONSTANT = 'Hello World' ;
echo CONSTANT ;
?>
PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。(不区分大小写)
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。
__DIR__ 文件所在的目录。
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。
__CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。
__TRAIT__ Trait 的名字(PHP 5.4.0 新加)。
__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
__NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。