作用域
<?php
// 作用域:全局,函数
$name ='hower'; # 全局变量
function name() {
// global 声明
global $name;
return $name;
}
echo name() . '<br>';
// 使用超全局变量访问
$name ='pharaoh';
function names() {
return $GLOBALS['name'];
}
$br = '<br>';
echo NAMES() . " again $br \n\r" ;
// 匿名函数+use关键字访问全局变量
$name ='panda';
$user = function () use ($name) {
return $name;
};
echo $user() . "$br"; # 双引号字符串可以解析变量的值
// 箭头函数 $a = fn () => .....
$age = 10;
$getAge = fn () => '年龄为' . $age . "$br";
echo $getAge();
// 纯函数直接把变量当参数传进去
function pandaAge ($a) {
return $a;
}
echo pandaAge($age) . $br;
/**
* 常量
* define('str' , values); 不能用在类中,可以再if中
* const 编译阶段处理,速度快
*/
define('PWD' , '123456');
const USER = 'administrator';
echo USER . ' , ' . PWD ,$br;
// 预定义常量
echo 'PHP版本' . PHP_VERSION . $br;
echo '服务器系统' . PHP_OS . $br;
echo '行:' . __LINE__ . $br;
echo '文件名' . __FILE__ . $br;
echo '目录' . __DIR__ . $br;
// 字符串定界符,单引号,双引号
$str = '单引号标记的字符串不会被解析';
// 反斜线\转义符
$str2 = "双引号相反,后面的内容为\$str变量的解析内容:$str";
echo $str , $br , $str2 , $br;
// 定界符<<< 标识符 'str'
$str3 = <<<'str'
在定界符内可以写多行,大量的内容。
nowdoc的标识符必须用单引号包裹 'str'
结尾必须再次标识
str;
echo $str3 , $br;
$str4 = <<<str
在定界符内可以写多行,大量的内容。
heredoc的标识符用双引号包裹 "str"
也可以不用,推荐不用
结尾必须再次标识
str;
echo $str4;
字符串函数
// 数组转字符串 implode('分隔符' , $数组):string ,js里是arr.join();
echo implode(',' , $arr) . '<br>';
// str_split($str);字符串拆分为数组
printf(print_r(str_split($str) , true ) . '<br>');
// 字符串转数组 explode('分割的字母或符号' , $str);
$arr2 = explode(',' , $str);
printf('<div style="color:red">%s</div>' ,print_r($arr2 , true));
// 字符串增查改删
$str = 'Wooo! It\'s so COOOOOL';
// substr('$str' , 开始位置,步数);
echo substr($str , 0 , 5) . '<hr>';
// strpos($str , 'str') 查询str索引 js里是str.charAt('str'); str.indexOf(索引);查字符
echo strpos($str , 'L') . '<br>';
// strstr($str , 'str') str之后的字符串(包括str)
echo strstr($str , 'It');
// 替换 str_replace('o' , 'p' , $str); o替换成p
echo str_replace('o' , 'p' , $str) . '<br>';
// strlen($str) 字符串长度(包括空格)
echo strlen($str) . '<br>';
// trim($str,charset);删除两侧的指定空白字符或其它预定义字符
echo trim($str , 'L') . '<br>';;
// ltrim();删除左侧的指定空白字符或其它预定义字符
// rtrim();删除右侧的指定空白字符或其它预定义字符
// strip_tags(''); 删除字符串的标签,防止注入
echo strip_tags('<p>删除p标签了</p>') . '<br>';