欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

摘自PHP手册[1] – 需要注意的基础知识

程序员文章站 2022-05-23 20:34:19
...
话说天涯最近利用空闲时间要完整的看一遍手册,话说会在博客里面发布一些自认为我们容易忽略的东西。不多说,第一篇。

Note: 关于换行 尽管换行在 HTML 中的实际意义不是很大,但适当地使用换行可以使 HTML 代码易读且美观。PHP 会在输出时自动删除其结束符 ?> 后的一个换行。该功能主要是针对在一个页面中嵌入多段 PHP 代码或者包含了无实质性输出的 PHP 文件而设计,与此同时也造成了一些疑惑。如果在 PHP 结束符 ?> 后输出换行的话,可以在其后加一个空格,或者在最后的一个 echo/print 语句中加入一个换行。

Note: 文件末尾的 PHP 代码段结束标记可以不要,有些情况下当使用 include() 或者 require() 时省略掉会更好些,这样不期望的白空格就不会出现在文件末尾,之后仍然可以输出响应标头。在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的白空格。

Note: 和其他两种语法不同,单引号字符串中出现的变量和转义序列不会被变量的值替代。
【天涯注】也就是说,单引号里面的变量不会被解析,会被当做字符串输出。

字符串中的字符可以通过在字符串之后用花括号指定所要字符从零开始的偏移量来访问和修改。

<?php

$str = 'Hello World!';

echo $str{1}; // 输出 e

?>

Note: unset() 函数允许取消一个数组中的键名。要注意数组将不会重建索引。

应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。但是为什么 $foo[bar] 错了呢?可能在老的脚本中见过如下语法:




<?php
$foo[bar] = 'enemy';
echo $foo[bar];
?>


这样是错的,但可以正常运行。那么为什么错了呢?原因是此代码中有一个未定义的常量(bar)而不是字符串(’bar’-注意引号),而 PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 ‘bar’ 并使用之。
Note: 重申一次,在双引号字符串中,不给索引加上引号是合法的因此 “$foo[bar]“是合法的。

允许的强制转换有:




(int),(integer) - 转换成整型
(bool),(boolean) - 转换成布尔型
(float),(double),(real) - 转换成浮点型
(string) - 转换成字符串
(array) - 转换成数组
(object) - 转换成对象


注意在括号内允许有空格和制表符

Note: HTML 表单并不传递整数、浮点数或者布尔值,它们只传递字符串。要想检测一个字符串是不是数字,可以使用 is_numeric() 函数。
Note: 在没有定义变量 $x 的时候,诸如 if ($x) 的用法会导致一个 E_NOTICE 级别的错误。所以,可以考虑用 empty() 或者 isset() 函数来初始化变量。

Note: 尽管 ! 比 = 的优先级高,PHP 仍旧允许类似如下的表达式:if (!$a = foo()),在此例中 foo() 的输出被赋给了 $a。

以上就是摘自PHP手册[1] – 需要注意的基础知识的内容,更多相关内容请关注PHP中文网(www.php.cn)!