设为首页 加入收藏

TOP

PHP开发要点与技巧总结(二)(四)
2019-08-23 00:31:36 】 浏览:71
Tags:PHP 开发 要点 技巧 总结
new Imagick(); $img->readImage(__DIR__ .'/1.heic'); //$img->resizeImage(320,240,Imagick::FILTER_LANCZOS,1); $img->writeImage(__DIR__ . '/1.jpg'); $img->clear();
  • isset():检测变量是否已设置并且非 NULL。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。 如果一次传入多个参数,那么 isset() 只有在全部参数都以被设置时返回 TRUE 计算过程从左至右,中途遇到没有设置的变量时就会立即停止。

     

  • self类:
    <?php
    class A
    {
        public $a = NULL;
    
        public function __construct($s)
        {
            $this->a = $s;
        }
    
        public function make($s)
        {
            return new self($s);
        }
    
        public function dump($obj)
        {
            if ($obj instanceof self) {
                var_dump($this, $obj);
            }
        }
    }
    
    $obj = new A('Obj-1');
    $obj->dump($obj->make('Obj-2'));
    /public/index.php:19:
    object(A)[1]
      public 'a' => string 'Obj-1' (length=5)
    /public/index.php:19:
    object(A)[2]
      public 'a' => string 'Obj-2' (length=5)
  • private属性不可见问题:
    abstract class RuleAbstraction
    {
        // 匹配模式
        private $pattern = null;
        // 校验对象
        private $subject = null;
    
        public function setSubject($subject) {
            $this->subject = $subject;
        }
    }
    class Email extends RuleAbstraction
    {
        // E-mail正则匹配模式
        private $pattern = '/^(?!_|-)(?>[\w\.-]+)@(?!-)(?>((?>[a-zA-Z0-9-]+)\.)+)[a-zA-Z]{2,46}$/';
    
        /**
         * 校验EMail地址
         *
         * @return false|int
         */
        public function check()
        {
    var_dump($this);
    return preg_match($this->pattern, $this->subject); } }
    $obj = new Email();
    $obj->setSubject('shuznhi.chen@anlaa.com');
    $obj->check();//0

    var_dump:

    object(RuleEngine\Rules\Email)#9 (3) {
      ["pattern":"RuleEngine\Rules\Email":private]=>
      string(69) "/^(?!_|-)(?>[\w\.-]+)@(?!-)(?>((?>[a-zA-Z0-9-]+)\.)+)[a-zA-Z]{2,46}$/"
      ["subject":"RuleEngine\Rules\RuleAbstraction":private]=>
      string(22) "w12.a/qe_@124afasf.com"
      ["pattern":"RuleEngine\Rules\RuleAbstraction":private]=>
      NULL
    }
    object(RuleEngine\Rules\Email)#14 (3) {
      ["pattern":"RuleEngine\Rules\Email":private]=>
      string(69) "/^(?!_|-)(?>[\w\.-]+)@(?!-)(?>((?>[a-zA-Z0-9-]+)\.)+)[a-zA-Z]{2,46}$/"
      ["subject":"RuleEngine\Rules\RuleAbstraction":private]=>
      string(22) "shunzhi.chen@anlaa.com"
      ["pattern":"RuleEngine\Rules\RuleAbstraction":private]=>
      NULL
    }
  • fmod():回被除数(x)除以除数(y)所得的浮点数余数。
    $x = 5.7;
    $y = 1.3;
    $r = fmod($x, $y);
    // $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7
    $mod = gmp_mod("8", "3");
    echo gmp_strval($mod) . "\n";// 2
  • 首页 上一页 1 2 3 4 下一页 尾页 4/4/4
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇[TCP/IP] 网络层-ARP协议 下一篇PHP基本语法

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目