一个点
在PHP一个点(.)的使用场景非常多。例如
英文句号
小数点
连字符($s1 . $s2或者$s1 .= $2)
在目录函数中,代表当前目录
……
两个点
PHP中的两个点有两种情况:
(..)在目录中只的是上一级目录(父目录)
(:)冒号使用的场景也非常多。有控制语句switch-case,三目元算符,命名占位符,正则中的非捕获组(?:pattern),PDO的DSN声明(mysql:host=….),JSON键值声明(”键”:“值”)等等。
switch ($variable) {
case 'value':
# code...
break;
default:
# code...
break;
}
$result = $str ? $str : $str1;
$sql = “INSERT INTO tedu_user (user,pass)VALUES (:user, :pass)”;
三个点
PHP中的三个点(…)表示可变长度参数的声明。是PHP的新特征,需要在PHP 5.6+的版本中才能使用。
代码演示如下
/**
*求和函数
*/
function sum(...$numbers)
{
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return$acc;
}
echo sum(1, 2, 3, 4);
如上所示,求和函数sum的参数是不固定的,即可变长度参数。在PHP 5.6+版本中可以使用三个点(…)来表示。
而同样的功能,在PHP 5.5或更早的版本中,需要通过以下几个函数来实现
func_num_args()
返回传递到函数的参数的数量
func_get_arg($arg_num)
返回参数列表的某一项
func_get_args()
返回函数的参数列表数组
演示代码如下所示:
function sum($args)
{
$acc = 0;
$numbers = func_get_args();
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
echo sum(1, 2, 3, 4);
四个点
这里的四个点指的是双冒号(::)。主要有以下几种场景:
范围解析操作符(::)。在OOP中分别用来访问类中的常量,静态成员属性和静态成员方法。
class Human
{
const COUNTRY = "PRC";
public static $name = "foo";
public static function hello()
{
return "Hello, World";
}
}
echo Human::COUNTRY; // 访问常量
echo Human::$name; // 访问静态变量
echo Human::hello(); // 访问静态方法
除此之外还可以用self::和parent::分别访问自身或父类中的内容
::class来获取类的名称。这是PHP5.5给类新增了一个静态属性。
namespace Core\Lib;
class Human
{
//
}
echo Human::class; // Core\Lib\Human
以上代码会输出类名称(Core\Lib\Human) 。
类似的还有单等号=(赋值),双等号==(判断是否相等),三等号===(判断是否全等)。
除此之外,PHP中你还发现了那些“点”的用法?还有那些重复字符的用法?