index.php处于未知,php未知函数

1.DIRECTORY\_SEPARATOR

php目录分隔符:\

在windows我们习惯性的使用“\\”作为文件分隔符,但是在linux上系统不认识这个标识,于是就要引入这个php内置变量了:DIRECTORY_SEPARATOR

1.5**PHP_EOL**为换行符。

2.# PHP常量PHP_SAPI与函数php_sapi_name()简介,PHP运行环境检测

(1)PHP_SAPI 用来判断是使用命令行还是浏览器执行的,如果 PHP_SAPI==’cli’ 表示是在命令行下执行

php判断解析php服务是由那种服务器软件,是采用那种协议 直接输出即可

代码如下:

echo PHP_SAPI;

?>

我的测试环境是nginx+fastcgi 输出结果为:

cgi-fcgi

如果是apache 运行环境,输出结果为

apache2handler

如果是命令行的形式执行,结果为

cli

这就是PHP_SAPI

(2)php_sapi_name() 是用来检测PHP运行环境的函数

例如,CLI 的 PHP 下这个字符串会是 “cli”,Apache 下可能会有几个不同的值,取决于具体使用的 SAPI。

以下列出了可能的值:

aolserver、apache、 apache2filter、apache2handler、 caudium、cgi (直到 PHP 5.3), cgi-fcgi、cli、 continuity、embed、 isapi、litespeed、 milter、nsapi、 phttpd、pi3web、roxen、 thttpd、tux 和 webjames。

3.

die()停止程序运行,输出内容

exit是停止程序运行,不输出内容

return是返回值

return:执行到该处退出,如果是在函数中,表示退出函数,如果是在脚本中,表示脚本停止执行

die是遇到错误才停止

exit是直接停止,并且不运行后续代码,exit()可以显示内容,例如exit('dsdsdsdf')。

exit(0):正常运行程序并退出程序;

exit(1):非正常运行导致退出程序;

4

dirname() 函数返回路径中的目录部分

D:\\phpstudy\\PHPTutorial\\WWW\tp5\public

再一次:D:\\phpstudy\\PHPTutorial\\WWW\tp5

再一次:D:\\phpstudy\\PHPTutorial\\WWW

5.

realpath() 函数返回绝对路径。

该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名。

6.spl_autoload_register()

```

class test {

public static function loadprint( $class ) {

$file = $class . '.class.php';

if (is_file($file)) {

require_once($file);

}

}

}

spl_autoload_register( array('test','loadprint') );

//另一种写法:spl_autoload_register( "test::loadprint" );

$obj = new PRINTIT();

$obj->doPrint();?>

PRINTIT::doPrint()

同样会加载 PRINTIT.php文件

用法:

require_once('A.php');

\A::regist();//注册自动加载

echo \User::test();//自动加载User.php文件

```

7.

'think\\Loader::autoload'

表示:'think\Loader::autoload'

\\转义字符,表示'\'

8.property_exists

主要作用是判断类或对象中的属性是否存在,存在是为true,不存在是false

bool interface_exists (string $interface_name [, bool $autoload = true ]) 判断接口是否存在

bool class_exists (string $class_name [, bool $autoload = true ]) 判断类是否存在

bool method_exists (mixed $object , string $method_name) 判断指定类或者对象中是否含有指定的成员函数

bool property_exists (mixed $class , string $property) 判断指定类或者对象中是否含有指定的成员变量。

function_exists()检测函数是否存在

is_callable )检测函数是否匿名函数

**function\_exists 比较简单点就是判断函数有没有被定义 而method\_exists 是判断类内的方法存不存在  is\_callable 检测参数是否为合法的可调用结构**

```

class Obj{

public $is_public;

protected $is_protected;

private $is_private;

public static $is_public_static;

const is_const=3;

}

$obj = new Obj();

var_dump(property_exists('Obj','is_public')); //true;

var_dump(property_exists($obj,'is_public')); //true;

var_dump(property_exists($obj,'is_protected')); //true;

var_dump(property_exists($obj,'is_private')); //true;

var_dump(property_exists($obj,'is_public1')); //false;

var_dump(property_exists($obj,'is_public_static')); //true;

var_dump(property_exists('Obj','is_const')); //false;

```

9.

```

[0=>'sasas'] 另一种写法:(array)'sasas'

```

10

```

var_dump(facade\App::class);

输出结果为:

"app\index\controller\facade\App"

‘app\index\controller\’为所在文件的命名空间

```

11.

strtr() 函数

```

把字符串中的字符 "ia" 替换为 "eo":

echo strtr("Hilla Warld","ia","eo");

?>

```

12.

```

$str='adafadsfadsff';

echo $str[0];

输出结果:a;

```

13.

microtime() 函数返回当前 Unix 时间戳的微秒数。

ucwords() 函数把字符串中每个单词的首字符转换为大写

ucfirst() 函数把字符串中的首字符转换为大写

lcfirst() - 把字符串中的首字符转换为小写

strtolower() 函数把字符串转换为小写

strtoupper() 函数把字符串转换为大写

strpos() 函数查找字符串在另一字符串中第一次出现的位置。

strrpos() 函数查找字符串在另一字符串中最后一次出现的位置。

查找 "php" 在字符串中最后一次出现的位置:

echo strrpos("You love php, I love php too!","php");

stristr() 函数搜索字符串在另一字符串中的第一次出现,并返回字符串的剩余部分

strstr() 函数搜索字符串在另一字符串中的第一次出现并,返回字符串的剩余部分,对大小写敏感

trim() 函数移除字符串两侧的空白字符或其他预定义字符。

ltrim() - 移除字符串左侧的空白字符或其他预定义字符

rtrim() - 移除字符串右侧的空白字符或其他预定义字符

realpath() 函数返回绝对路径,该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名。若失败,则返回 false。比如说文件不存在的话。

scandir() 函数以数组形式返回指定目录中的文件和目录

strtr() 函数转换字符串中特定的字符。strtr("Hilla Warld","ia","eo");

str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)

str_replace("world","Shanghai","Hello world!");把字符串 "Hello world!" 中的字符 "world" 替换为 "Shanghai";

14

memory_get_usage()函数返回内存使用量,memory_get_peak_usage()函数返回内存使用峰值,getrusage()返回CUP使用情况。但有一点请注意,在这些函数需要在Linux上运行

15.

$declaredClass = get_declared_classes();

获取当前加载的所有类

$composerClass = array_pop($declaredClass);

删除数组中的最后一个元素,返回值是最后一个元素

16.

pathinfo(path,options)函数以数组的形式返回文件路径的信息。

* PATHINFO_DIRNAME - 只返回 dirname

* PATHINFO_BASENAME - 只返回 basename

* PATHINFO_EXTENSION - 只返回 extension

* PATHINFO_FILENAME-只返回 FILENAME

```

print_r(pathinfo("/testweb/test.txt"));

?>

~~~

Array

(

[dirname] => /testweb

[basename] => test.txt

[extension] => txt

[filename] => test

)

~~~

```

17.

key() 函数返回数组内部指针当前指向元素的键名

reset() 函数将内部指针指向数组中的第一个元素,并输出。

18.# call_user_func_array函数详解

call_user_func函数详解

把第一个参数作为回调函数(**callback**)调用,把参数数组作(**param_arr**)为回调函数的的参数传入

```

代码如下:

(1)普通使用:

function a($b, $c) {

echo $b;

echo $c;

}

call_user_func_array('a', array("111", "222"));

//输出 111 222

(2)调用类内部的方法:

Class ClassA {

function bc($b, $c) {

$bc = $b + $c;

echo $bc;

}

}

call_user_func_array(array('ClassA','bc'), array("111", "222"));

//输出  333

(3)支持引用传递:

function a(&$b) {

$b++;

}

$c = 1;

call_user_func_array('a', array(&$c));

echo $c;  //输出 2

```

19.

**func\_get\_args():返回一个包含函数参数列表的数组。**

**func\_get\_arg():返回指定的参数值。**

**func\_num\_args():返回调用函数的传入参数个数,类型是整型**

```

public function test(){

$res=$this->hello(1,2,3,4);

var_dump($res);

}

public function hello($a,$b,$c,$d){

$num=func_num_args();

$num2=func_get_arg(2);

$num3=func_get_args();

return $num3;

}

打印结果分别是:4,3,array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) }

```

20# __CLASS__、get_class()与get_called_class()都是获取当前类名,完整类名,包含命名空间

区别:

![](https://img.kancloud.cn/ca/15/ca15d20e46f40089260122011b6cf14b_672x458.png)

21

php 5.3 后新增了__call与__callStatic魔法方法。

__call当要调用的方法不存在或权限不足时,会自动调用__call 方法。

__callStatic当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。

```

public function __call($func, $arguments){

}

public function __callStatic($func, $arguments){

}

```

22.错误方面的函数

~~~

// 关闭错误报告

error_reporting(0);

// 报告 runtime 错误

error_reporting(E_ERROR | E_WARNING | E_PARSE);

// 报告所有错误

error_reporting(E_ALL);

// 等同 error_reporting(E_ALL);

ini_set("error_reporting", E_ALL);

// 报告 E_NOTICE 之外的所有错误

error_reporting(E_ALL & ~E_NOTICE);

~~~

```

通过 set\_error\_handler() 函数设置用户自定义的错误处理程序,然后触发错误(通过 trigger\_error()):

set\_error\_handler("customError") 不仅可以接受**函数**,还可以接受**类的方法(公开的静态方法 及 公开的非静态方法 都可以)**,但需要以**数组形式**传递,数组的第一值为“类名”,第二个参数为“方法名”,

```

```

set\_exception\_handler() 函数设置用户定义的异常处理函数。

set_exception_handler([__CLASS__, 'appException']);

```

```

当PHP程序执行完成后,自动执行register\_shutdown\_function函数,该函数需要一个参数,用来指定由谁处理这些后续的工作。其中,**程序执行完成**,分为以下几种情况:

第一种:php代码执行过程中发生错误

第二种:php代码顺利执行成功

第三种:php代码运行超时

第四种:页面被用户强制停止

register_shutdown_function([__CLASS__, 'appShutdown']);

```

23. get_object_var($object)

返回类中所有的非静态方法和非静态属性

24.array_change_key_case() 函数将数组的所有的键都转换为大写字母或小写字母。

* CASE_LOWER - 默认值。将数组的键转换为小写字母。

* CASE_UPPER - 将数组的键转换为大写字母

25uniqid(prefix,more_entropy)

uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。

prefix 可选。为 ID 规定前缀。如果两个脚本恰好在相同的微秒生成 ID,该参数很有用。

more_entropy 可选。规定位于返回值末尾的更多的熵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值