10-PHP使用过的函数 91-100

 91、exit

输出一个消息并且退出当前脚本

示例1:

<?php

$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
    or exit("unable to open file ($filename)");

?>

示例2: exit() 状态码例子 

<?php

//exit program normally
exit;
exit();
exit(0);

//exit with an error code
exit(1);
exit(0376); //octal

?>

示例3:无论如何,Shutdown函数与析构函数都会被执行 

<?php
class Foo
{
    public function __destruct()
    {
        echo 'Destruct: ' . __METHOD__ . '()' . PHP_EOL;
    }
}

function shutdown()
{
    echo 'Shutdown: ' . __FUNCTION__ . '()' . PHP_EOL;
}

$foo = new Foo();
register_shutdown_function('shutdown');

exit();
echo 'This will not be output.';
?>

以上例程会输出: 

 Shutdown: shutdown()
 Destruct: Foo::__destruct()

注意: 因为是语言构造器而不是函数,不能被 可变函数 或者 命名参数 调用。 

92、die

等同于 exit()

// die('程序中断');后面的就不执行了
//exit('代码中断');后面的就不执行了,与die类似

 93、register_shutdown_function

注册在关闭时执行的函数

register_shutdown_function(callable $callbackmixed ...$args): void

注册一个 callback ,它会在脚本执行完成或者 exit() 后被调用。

可以多次调用 register_shutdown_function(),这些被注册的回调会按照他们注册时的顺序被依次调用。如果你在注册的方法内部调用 exit(),那么所有处理会被中止,并且其他注册的中止回调也不会再被调用。

关闭函数也可以调用 register_shutdown_function() 来将关闭函数添加到队列的末尾。

<?php
function shutdown()
{
    // 这是关闭函数,在脚本完成前可以进行任何最后的操作。

    echo 'Script executed with success', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

注意:

在某些 web 服务器(如 Apache)上,可以在中止函数内对脚本的工作目录进行修改。

 94、is_array

检测变量是否是数组

<?php
$yes = array('this', 'is', 'an array');
echo is_array($yes) ? 'Array' : 'not an Array';
echo "\n";
$no = 'this is a string';
echo is_array($no) ? 'Array' : 'not an Array';
?>

 以上例程会输出:

Array
not an Array

参见:

 95、instanceof

//对象是一个容器,是全局成员的一个前缀

//以人为例,类是筛选标准,小明符合标准,小明就是这个类的实例化

//类:全局成员,声明:class,大驼峰命名,如UserName(帕斯卡命名)


//1.类的声明
class Goods
{
    //...
}
//2.类的实例化
$goods = new Goods();

//实例总是与一个类绑定,是某个类的实例
//对象更通用一些,在不引起歧义的情况下,实例其实就是对象
//如果实在要区分,那么实例化是一个过程,但是没有对象化一说

//3.类的判断
var_dump($goods instanceof Goods);
echo '<hr>';

以上例程会输出: 

bool(true) 

96、get_class 

echo get_class($goods) . '<hr>';

 以上例程会输出: 

_0812\Goods 

97、ucfirst

将字符串的首字母转换为大写

将 string 的首字符(如果首字符是 "a"(0x61)到 "z"(0x7a)范围内的 ASCII 字符)转换为大写字母,并返回这个字符串。

注意字母的定义取决于当前区域设定。例如,在默认的 “C” 区域,字符 umlaut-a(ä)将不会被转换。

<?php
$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar);             // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>

参见:

 98、__construct


    //构造方法:魔术方法,不用用户主动调用,由某个事件或动作来触发
    //__get,__set
    //构造方法,实例化该类时,会自动触发
    public function __construct($username,$salary,$age,$nation='China')
    {
        $this->username = $username;
        $this->salary = $salary;
        $this->age = $age;

        //静态成员可以用构造函数进行实例化
        //初始化静态属性
        self::$nation = $nation;
    }
    //静态成员 static
    //静态属性
    public static $nation = '中国';

99、array_key_exists 

检查数组里是否有指定的键名或索引

数组里有键 key 时,array_key_exists() 返回 true。 key 可以是任何能作为数组索引的值。

返回值:成功时返回 true, 或者在失败时返回 false

注意:

array_key_exists() 仅仅搜索第一维的键。 多维数组里嵌套的键不会被搜索到。

示例1: 

<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
    echo "The 'first' element is in the array";
}
?>

示例2:array_key_exists() 与 isset() 的对比,isset() 对于数组中为 null 的值不会返回 true,而 array_key_exists() 会。

<?php
$search_array = array('first' => null, 'second' => 4);

// 返回 false
isset($search_array['first']);

// 返回 true
array_key_exists('first', $search_array);
?>

 100、isset

检测变量是否已声明并且其值不为 null

判断一个变量是否已设置, 即变量已被声明,且其值不为 null

如果一个变量已经被使用 unset() 释放,它将不再被认为已设置。

若使用 isset() 测试一个被赋值为 null 的变量,将返回 false。 同时要注意的是 null 字符("\0")并不等同于 PHP 的 null 常量。

如果一次传入多个参数,那么 isset() 只有在全部参数都已被设置时返回 true。 计算过程从左至右,中途遇到未设置的变量时就会立即停止。

返回值:如果 var 存在并且值不是 null 则返回 true,否则返回 false。 

示例1: 

<?php

$var = '';

// 结果为 TRUE,所以后边的文本将被打印出来。
if (isset($var)) {
    echo "This var is set so I will print.";
}

// 在后边的例子中,我们将使用 var_dump 输出 isset() 的返回值。
// the return value of isset().

$a = "test";
$b = "anothertest";

var_dump(isset($a));      // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo));   // FALSE

?>

这对于数组中的元素也同样有效: 

<?php

$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE

// 键 'hello' 的值等于 NULL,所以被认为是未置值的。
// 如果想检测 NULL 键值,可以试试下边的方法。 
var_dump(array_key_exists('hello', $a)); // TRUE

// Checking deeper array values
var_dump(isset($a['pie']['a']));        // TRUE
var_dump(isset($a['pie']['b']));        // FALSE
var_dump(isset($a['cake']['a']['b']));  // FALSE

?>

示例2:在字符串位移中使用 isset() 

<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>

 以上例程会输出:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。 

注意: 因为是语言构造器而不是函数,不能被 可变函数 或者 命名参数 调用。

注意:

如果使用 isset() 来检查对象无法访问的属性,如果 __isset() 方法已经定义则会调用这个重载方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七色的天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值