字符串
<?php
//单引号和双引号
//单引号不可以解析变量,双引可以!单引号基本都是字符串
//解析变量可以使用{}
$a='我';
$b="你";
echo "$a==和==$b==我是=={$b}",'<br>';
echo '$a==没变==$b',"<br>";
$a="我是一\r\n本书";
echo $a.'<br>';
// 转义字符"\"在单引号中只能转义自身和单引号自己
//所以如下\r\n是不会被解析的。
$a='我是\'一 \r\n 本书\\';
echo $a.'<br>';
echo '<hr>';
//nowdoc和heredoc
//相对应的是:heredoc类似双引号。nowdoc则类似于单引号;
//heredoc内部的字符串不需要添加定界符,功能与双引号定义的字符串类似
//注意结尾一定不可以有空格。heredoc里面也不可以加注释内容。
$book=['author'=>'罗贯中','name'=>'三国演义','price'=>500];
echo <<< BOOK
<ul>
<li>作者:{$book['author']}</li>
<li>书名:{$book['name']}</li>
<li>价格:{$book['price']}</li>
</ul>
这是我的书 \r\n price \\ 请购买
BOOK;
echo '<hr>';
$name='阿心';
$gender='人妖';
$age=20;
$adderess='西京省';
$message=['name'=>$name,'gender'=>$gender,'age'=>$age,'adderess'=>$adderess];
?>
<html>
<ul>
<li>姓名:<?php echo $message['name']?></li>
<li>性别:<?php echo $message['gender']?></li>
<li>年龄:<?php echo $message['age']?></li>
<li>籍贯:<?php echo $message['adderess']?></li>
</ul>
</html>
<?php
//nowdoc
// 内部的字符串不需要添加定界符
// 功能与"单引号"定义的字符串类似
// nowdoc适合大段php代码,而且不需要转义,也不需要解析内部变量的文本
// 经常用于初始化类属性和类常量, 凡是需要静态数据的场景下都可以用
echo <<<'CH'
我是一个en语言,\r\n is php \ \' !<br>
CH;
class Test
{
const AB = <<< foo
email:123qq.com;<br>
qq:123; \n\r \\
wx:123;
foo;
}
echo Test::AB;
?>
打印输出函数:
<?php
//打印输出函数:
//print,printf,print_r,vprintf,sprintf,vsprintf,fprintf,sscanf,number_format
//printf格式输出;
$title="wellcome 我的网站";
printf('hello %s',$title);
echo '<br>';
//%s占位符占字符串。%d占位符占整数;注意里面%s的符号是``不是''。
//下列表示查询数据库名为name查询2条。
printf('select * from %s limit %d', 'name',2);
echo '<hr>';
//vpritf在一个格式化字符串中显示多个值,与 printf() 函数类似,接收一个数组参数,而不是一系列可变数量的参数
//重点:【多个参数使用数组形式】:
vprintf('select * from %s limit %d',['user',rand(0,10)]);
echo '<hr>';
//sprintf返回格式化字符串/注意:是“返回”。功能和printf一样,只不过一个是打印输出,一个是返回
//这样写是不会有数据的:
sprintf('select * from %s limit %d','id',3);
//想要输出需要使用echo
$sql=sprintf('select * from title limit 3');
echo $sql;
echo '<br>';
//vprintf--输出格式化字符串,vsprintf--返回格式化字符串
//例子同上:
//返回而不输出:并且多个参数要使用数组形式
//错误写法,需要%s%d才可以 vsprintf('select * from name limit 20');
vsprintf('select * from %s limit %d',['name',20]);
$vsp=vsprintf('select * from %s limit %d',['name',20]);
echo $vsp;
echo '<br>';
//同样需要使用数组方式
vprintf('select * from %s limit %d',['name',20]);
echo '<hr>';
//fprintf--将格式化后的字符串写入到流
//写入一个根据 format 格式化后的字符串到 由 handle 句柄打开的流中。
//handle文件系统指针,是典型地由 fopen() 创建的 resource(资源)。
//$hadnle需要W写入文件
$hadnle=fopen('test.txt','w') or die('打开文件失败');
//返回数据到$hadnle
fprintf($hadnle,sprintf('select * from %s limit %d','sql',20));
echo '<br>';
//使用printf会有返回值。
//fprintf($hadnle,printf('select * from %s limit %d','sql',20));
//file_get_contents — 将整个文件读入一个字符串
echo file_get_contents('test.txt');
echo '<hr>';
//sscanf — 根据指定格式解析输入的字符
var_dump(sscanf('PHP-5000','PHP-%d'));
echo '<br>';
list($n)=sscanf('WWW-baidu.com','WWW-%s');
echo $n;
echo '<hr>';
//number_format — 以千位分隔符方式格式化一个数字
//属性(数字,小数几位,小数点形式,千位分隔符。)
echo number_format(100000.333),'<br>';
echo number_format(100000.333,5,'-','`'),'<br>';
转化字符串和分割字符串
<?php
//implode — 将一个一维数组的值转化为字符串
$arr=['name','age','email'];
$imp=implode(',',$arr);
echo $imp;
echo '<hr>';
$arr=[1,2,3,4,5,6];
$imp=implode(',',$arr);
echo $imp;
echo '<hr>';
//explode — 使用一个字符串分割另一个字符串
//什么是分割?(如:localhost,roor。分隔符为“,”数据为localhost和root
$sql='localhost,root,123,test,utf8';
//可以选择分割几位
print_r(explode(',',$sql,3));
printf('<pre>%s</pre>',print_r(explode(',',$sql),true));
list($local,$root,$pass,$name)=explode(',',$sql);
$mysqli=new MySqli($local,$root,$pass,$name);
总结:思维暂时还没开阔起来。学了几节课后,应该可以做很多东西的了。就是思维没开阔起来,所以还是只能抄,想写的自己想出来的东西还是不现实!