作业内容:
从手册上选择至少5个课堂上没讲过的字符串函数,进行实例演示
(一)作用域,常量
/**
* 1. 默认全局有效
* 2. define, 可以用在if中, 但不能用在class中
* 3. const, 编译阶段处理, 速度最快, 必须写到作用域的顶部,适合声明类常量,不能用在if中
*/
//php常量是可以用define()函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义
define('','php');
define('name','ZOLO');
//''空字符->合法常量
echo constant('').'<hr>';
//预定义常量
echo 'PHP版本号:'.PHP_VERSION.'<hr>';
echo 'PHP版本号:'.name.'<hr>';
$str1 = <<<'DOC'
<pre>
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
</pre>
DOC;
echo $str1;
$str2 = <<<DOC
<pre>
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
</pre>
DOC;
echo $str2;
// php中函数中不能访问到外部的变量
$name = 'zolo';
$test1 = function () use ($name){
// use 引用 $name;
return 'hello,,,'.$name;
};
echo $test1() .'<hr>';
function test2(){
//global声明
global $name;
return 'hello,,,'.$name;
};
echo test2().'<hr>';
function test3(){
echo '当前函数名:'.__METHOD__.'<br>';
return 'hello,,,'.$GLOBALS['name'];
};
echo test3().'<hr>';
$arr = [1,2,3,4,0,false,'0'];
printf('<pre>%s</pre>',print_r(array_filter($arr),true));
echo '当前行号'.__LINE__.'<br>';
echo '当前行号'.__DIR__.'<br>';
echo '当前文件'.__FILE__.'<br>';
// ! 3. 模板: 双引号
echo "print a name there : $name";
$table = <<<t
<table border='1px soloid'>
<tr>
<td>123</td>
<td>123</td>
<td>123</td>
</tr>
</table>
t;
echo $table;
(二)数组与字符串相互转换
从手册上选择至少5个课堂上没讲过的字符串函数,进行实例演示
<?php
$str1 = 'this use explode';
$str2 = 'this use split';
echo strlen($str1);
// ? 1. string -> array
//explode( string $delimiter , string $string [, int $limit = PHP_INT_MAX ]): array
$arr1 = explode(' ',$str1);
printf('<pre>%s</pre>', print_r($arr1, true));
//str_split( string $string [, int $split_length = 1 ]): array
$arr2 = str_split($str2,4);
printf('<pre>%s</pre>', print_r($arr2, true));
// ? join: array->string
// implode — 用字符串连接数组元素 join — 别名 implode()
$arr3 = ['今天','你','抢到','菜','了吗?'];
// printf('<pre>%s</pre>', print_r(implode('',$arr3), true));
printf('<pre>%s</pre>', print_r(implode($arr3), true));
printf('<pre>%s</pre>', print_r(join($arr3), true));
// substr(string $string, int $offset, ?int $length = null): string
$str3 = '0123456789';
echo substr($str3,-3).'<br>';
echo substr($str3,1,3).'<br>';
echo substr($str3,1).'<br>';
// strstr( string $haystack , mixed $needle [, bool $before_needle ]): string
$str4 = 'zolO@qq.com';
echo strstr($str4,'@').'<br>';
echo strstr($str4,'o').'<br>';
// str_replace( mixed $search , mixed $replace , mixed $subject [, int $count ]): mixed
$arr4 = ['带货','微信','QQ'];
$arr5 = '加我微信,或者加我QQ,我在朋友圈带货';
echo str_replace($arr4, '@@', $arr5) . '<hr>';
$arr6 = ['带货','微信','QQ'];
$arr7 = ['微信','带货'];
echo 'array_diff( array $array1 , array $array2 [, array $... ]): array 取不同';
printf('<pre>%s</pre>', print_r(array_diff($arr4,$arr6), true));
printf('<pre>%s</pre>', print_r(array_diff($arr4,$arr7), true));
echo 'array_intersect( array $array1 , array $array2 [, array $... ]): array 取交集';
printf('<pre>%s</pre>', print_r(array_intersect($arr4,$arr7), true));
echo 'array_flip(array $array): array 键值转换';
printf('<pre>%s</pre>', print_r(array_flip($arr4), true));
echo 'array_rand( array $array [, int $num = 1 ]): mixed 从数组中随机取出一个或多个随机键';
printf('<pre>%s</pre>', print_r($arr3[array_rand($arr3,1)], true));
echo 'shuffle( array $array ): bool 打乱数组';
shuffle($arr3);
printf('<pre>%s</pre>', print_r($arr3, true));