PHPPHP好用而与此同时便于忽略的有点知识

1、PHP函数之判断函数是否有

  当我们创造了从定义函数,并且掌握了不过变换函数的用法,为了确保程序调用的函数是有的,日常会先行利用function_exists判断一下函数是否存在。同样的method_exists可以就此来检测类的办法是否有。

function func() {
}
if (function_exists('func')){
    echo 'exists';
}

接近是否定义可以下class_exists

class MyClass{
}
// 使用前检查类是否存在
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

PHP中出诸多霎时类似的检讨办法,例如文件是否有file_exists等

$filename = 'test.txt';
if (!file_exists($filename)) {
    echo $filename . ' not exists.';
}

2、PHP函数之可转换函数

所谓可更换函数,即透过变量的价来调用函数,因为变量的值是可变的,所以可以通过转一个变量的价值来兑现调用不同的函数。平常会师就此当回调函数、函数列表,或者按照动态参数来调用不同的函数。可变换函数的调用方法也变量名加括号。

function name() {
    echo 'jobs';
}
$func = 'name';
$func(); //调用可变函数

不过易函数也堪据此当靶的法调用上

class book {
    function getName() {
        return 'bookname';
    }
}
$func = 'getName';
$book = new book();
$book->$func();

静态方法也得以通过变量来举行动态调用

$func = 'getSpeed';
$className = 'Car';
echo $className::$func();  //动态调用静态方法

静态方法中,$this伪变量不同意以。可以下self,parent,static在里面调用静态方法与性。

class Car {
    private static $speed = 10;

    public static function getSpeed() {
        return self::$speed;
    }

    public static function speedUp() {
        return self::$speed+=10;
    }
}
class BigCar extends Car {
    public static function start() {
        parent::speedUp();
    }
}

BigCar::start();
echo BigCar::getSpeed();

3、PHP类和目标的对象的高档特性

PHP,目的相比较,当同一个近乎的片只实例的装有属性都等于时,可以用于运算符==进行判定,当得判定两单变量是否为同一个对象的援时,可以下全等运算符===举办判断。

class Car {
}
$a = new Car();
$b = new Car();
if ($a == $b) echo '==';   //true
if ($a === $b) echo '==='; //false

目标复制,在有些特别处境下,可以由此重大字clone来复制一个靶,这时__clone方法会于调用,通过者魔术点子来安属性的价值。

class Car {
    public $name = 'car';

    public function __clone() {
        $obj = new Car();
        $obj->name = $this->name;
    }
}
$a = new Car();
$a->name = 'new car';
$b = clone $a;
var_dump($b);

对象连串化,可以经过serialize方法将目的序列化为字符串,用于存储或者传递数据,然后于待之早晚经过unserialize将字符串反系列化成靶子举行下。

class Car {
    public $name = 'car';
}
$a = new Car();
$str = serialize($a); //对象序列化成字符串
echo $str.'<br>';
$b = unserialize($str); //反序列化为对象
var_dump($b);

4、PHP字符串之得字符串的尺寸

php中来一个神奇之函数,可以一向拿走字符串的尺寸,那么些函数就是strlen()。

$str = 'hello';
$len = strlen($str);
echo $len;//输出结果是5

strlen函数对于统计英文字符是这个之善,不过一旦出粤语汉字,要统计长度该怎么收拾?

得使用mb_strlen()函数获取字符串中中文长度。

$str = "我爱你";
echo mb_strlen($str,"UTF8");//结果:3,此处的UTF8表示中文编码是UTF8格式,中文一般采用UTF8编码

5、PHP字符串之格式化字符串

如来一个字符串$str = ‘99.9’;,如何使这多少个字符串变成99.90吗?

咱俩需要使用PHP的格式化字符串函数sprintf()

函数表达:sprintf(格式, 要转化的字符串)

回:格式化好之字符串

$str = '99.9';
$result = sprintf('%01.2f', $str);
echo $result;//结果显示99.90

诠释下,下边例子中之格式

是 %01.2f 是啊意思吧?

1、这些 % 符号是从头的意思,写以太前边表示指定格式最先了。 也就是是
“起头字符”, 直到出现 “转换字符” 截至,固然格式终止。
2、跟当 % 符号后边的是 0, 是 “填空许首”
,表示一旦地点空着即用0来填满。
3、在 0 前边的凡1,那么些 1
是规定任何所有的字符串占位要生1各样以上(小数点也好不容易一个占位)。
    要是把 1 改化 6,则 $result的价将为 099.90
   
因为,在稍微数点前边总得是少数各项,99.90同样协办5独占位,现在要6独占位,所以用0来填满。
4、在 %01 后边的 .2 (点2)
就这个好了解了,它的意思是,小数点后底数字要占用2各。 假若那时,$str
的值也9.234,则 $result的价值将为9.23.
    为何4 不见了也?
因为以聊数点前面,依据点的规定,必须还只可以够占2员。 可是 $str
的价备受,小数点后边占了3位,所以,倒数4为失去丢了,只剩下 23。
5、最终,以 f “转换字符” 结尾。

6、PHP字符串之字符串的转义

php字符串转义函数addslashes()

函数表达:用于对特殊字符加上转义字符,重回一个字符串

重返值:一个经转义后底字符串

$str = "what's your name?";
echo addslashes($str);//输出:what\'s your name?

 

相关文章