PHP课程笔记11

来源:互联网 发布:传世db数据库编辑器 编辑:程序博客网 时间:2024/04/29 12:48

课时183 PHP定义子命名空间

<?php
/*
* 命名空间
*
* 1.常量
* 2.函数
* 3.类
*
* namespace来声明命名空间
* 注意: 1.在namespace声明空间的代码上面不能有任何php代码和HTML的内容输出,声明命名空间只能是第一条,除了(declare).
*  2.定义多个名字空间以最后一个为主
* 3.可以在同一个文件里命名多个空间,但是代码也必须在它下面. 然后再定义新的命名空间. 但非常不提倡.
*/
namespace pro;

const AAA = 1;

class Demo{
static function one(){
echo "1111<br>";
}
}

function test(){
echo "2222<br>";
}

test();
\pro\test();

echo \pro\AAA."<br>";

\pro\Demo::one();

 

namespace deo{

const BBB = 5;
echo \deo\BBB."<br>";
}
?>


 

课时184 PHP在同一文件中定义多个命名空间


课时185 PHP命名空间和动态语言特征

echo __NAMESPACE__;  //魔术方法,可以直接输出命名空间名称


 课时186 PHP使用命名空间:别名/导入

*可以使用use关键字为namespace起别名    use pro as p;


课时188 字符串的处理方式1

 

<?php
/*
*
* 字符串的声明(数据类型)
* 1.可以使用双引号,也可以使用单引号
* 双引号可以解析变量,双引号中可以使用所有转义字符
* 2.<<<
*
* 分割, 匹配, 查找, 替换
*
* 特点:如果是其他类型的数据,也可以使用字符串处理函数. 先将其他类型自动转换成了字符串后再处理
*
* 字符串可以像数组一样,通过下标来访问到每个字符,但不是数组(数组也可以通过{}下标来访问成员)
*
* 字符串除了有英文字符,还有中文.uft-8中中文每个字符占3个字节.
*/

echo count(" "); //结果会输出1. 不论里面有没有,用计算数组的count计算字符串都是输出1
echo "<br>";

echo strlen("hello");
echo "<br>";
echo strlen(105000);
echo "<br>";

$str = "world";
echo $str[0].$str[1]."<br>";
echo $str{2}.$str{3}."<br>"; //建议使用大括号来查找字符串的成员

 

?>

结果:

1
5
6
wo
rl


课时189 字符串的处理方式2

 

$str = "hello<br>";
$str{2} = "2w";
echo $str;

$arr = array("one"=>100);

echo "aaaaaaa{$arr["one"]}aaaaaaaa<br>"; //这种方式最好
echo "bbbbbbb $arr[one] bbbbbbb<br>"; //双引号中可以识别数组

 

结果:

he2lo
aaaaaaa100aaaaaaaa
bbbbbbb 100 bbbbbbb


 

 课时190 常用的字符串输出函数1

<?php

$str = "hello world";
$han = "文字比较麻烦";

echo substr($str,0,4);
echo "<br>";
echo mb_substr($han,0,10)."<br>"; //处理汉字时比较好用,但用的少,尽量不使用

//echo 和 print的区别
echo "aaaaa<br>";
echo ("bbbbb<br>");

print "ccccc<br>";
var_dump(print ("ddddd<br>")); //print有返回值

echo "aaaa,","bbbb,","ccccc"."<br>"; //echo的指令模式可以打印多个参数,print不可以
//print "1111,","22222";
//die(); exit();输出并退出
exit("eeeeeeee");
die("sssssssss"); //二者基本没太大区别

 

结果:
hell
文字比较麻
aaaaa
bbbbb
ccccc
ddddd

int 1

aaaa,bbbb,ccccc
eeeeeeee


 

课时191 常用的字符串输出函数2

//printf格式化输出
$int = 100;
printf("%d, %c",$int,$int);
//echo chr($int);

//sprintf格式化返回

$int = 99;
$str = sprintf("%d, %c",$int,$int);

echo $str;

结果:

100, d

99, c

 

 


 

课时192 去除空格和字符串填补及大小写转换函数

<?php
/*
* 字符串格式化
*/

$str = "lamp";

//str_pad
echo $str."----".strlen($str)."<br>";
$nstr = str_pad($str,10,"#");
echo $nstr."----".strlen($nstr)."<br>";

//strtolower,strtoupper,ucfirst,ucwords
$s = "this is a test";
echo strtolower($s)."<br>";
echo strtoupper($s)."<br>";
echo ucfirst($s)."<br>";
echo ucwords($s)."<br>";
?>

结果:

lamp----4
lamp######----10
this is a test
THIS IS A TEST
This is a test
This Is A Test


课时193 和HTML标签相关的字符串格式化函数

 


课时196 字符串面试题1

<?php

//不用PHP函数,自己写一个字符串翻转函数
$str = "www.baidu.com";
echo $str."<br>";
function fanzhuan($str){
$len = strlen($str)-1;
$trs = "";
for($i=$len; $i>=0; $i--){
$trs .= $str[$i];
}
return $trs;
}
echo fanzhuan($str);
echo "<hr>";
//自定义format函数
$str2 = "123456789";

echo number_format($str2);
echo "<br>";

function nformat($str){
$n = "";

$m = strlen($str);

/* for($i=$m; $i>=0; $i--){
if($i%3==0 && $i != 0){
$n .= $str{$i}.",";
}else{
$n .= $str{$i};
}
}
*/
$k = $m % 3;
for($i=0;$i<$m;$i++){
if($i != 0 && $i%3 == $k){
$n .= ",";

}
$n .= $str{$i};
}
return $n;

}
echo nformat($str2);
?>

结果:

www.baidu.com
moc.udiab.www


123,456,789
123,456,789


课时197 字符串面试题2

//获取文件扩展名的函数
$url = "www.baidu.com/xxx/seirji/index.class.asp?user=fff&ei=13";
$url2 = "index.class.jsp?user=fff&ei=13";
$url3 = "www.baidu.com/xxx/seirji/index.class.php";
$url4 = ".php?user=fff&ei=13";
function extname($url){
if(strstr($url,"?")){
//1.如果有问号格式的文件,将问号前的文件取出给变量file
list($file) = explode("?",$url);
}else{
$file = $url;
}

//2.取出文件名
$loc = strrpos($file,"/")+1;
$filename = substr($file,$loc);

//3.取扩展名
//$loc2 = strrpos($filename,".")+1;
//$ex = substr($filename,$loc2);
//echo $ex;

$arr = explode(".",$filename);
return array_pop($arr);
}
echo extname($url)."<br>";
echo extname($url2)."<br>";
echo extname($url3)."<br>";
echo extname($url4)."<br>";

结果:

asp
jsp
php
php


课时198 字符串面试题3

//计算两个文件的相对路径,从一个文件怎么到另一个文件

//1.将公共目录去除
//2.返回同级目录,并进入另一个目录

function abspath($a,$b){
$path = "";

//1去除公共目录结构
$a = dirname($a);
$b = dirname($b);

$a = trim($a,"/");
$b = trim($b,"/");

$a = explode("/",$a);
$b = explode("/",$b);

$num = max(count($a),count($b));

for($i=0;$i<$num;$i++){
if($a[$i]==$b[$i]){
unset($a[$i]);
unset($b[$i]);
}else{
break;
}
}
//回到同级目录,进入另一个目录
$path = str_repeat("../",count($b)).implode("/",$a);
return $path;
}

$a = "a/b/c/d/e.php";
$b = "a/b/12/34/c.php";

echo abspath($a,$b);

结果:

../../c/d

 

 

 

 

 

 

 

 

 

 

0 0