分类 PHP 下的文章

php从以前到现在一直都是单继承的语言,无法同时从两个基类中继承属性和方法,为了解决这个问题,php出了Trait这个特性

用法:通过在类中使用use 关键字,声明要组合的Trait名称,具体的Trait的声明使用Trait关键词,Trait不能实例化

如下代码实例:

<?php
trait Dog{
    public $name="dog";
    public function bark(){
        echo "This is dog";
    }
}
class Animal{
    public function eat(){
        echo "This is animal eat";
    }
}
class Cat extends Animal{
    use Dog;
    public function drive(){
        echo "This is cat drive";
    }
}
$cat = new Cat();
$cat->drive();
echo "<br/>";
$cat->eat();
echo "<br/>";
$cat->bark();
?>

输出

- 阅读剩余部分 -

Laravel 5.6 中文文档
http://laravelacademy.org/laravel-docs-5_6
http://laravelacademy.org/post/8900.html
http://laravelacademy.org/post/8851.html
注:想要快速上手?只需要在新安装的 Laravel 应用下运行 php artisan make:auth 和 php artisan migrate,这两个命令会生成用户登录注册所需要的所有东西,然后在浏览器中访问 http://your-app.dev/register 即可。

php artisan make:auth
php artisan migrate

创建用户模块 以及数据库

友情提示:新建的用于登录认证的模型类需要继承 IlluminateFoundationAuthUser 基类,不然后面就会出现不能认证的窘况。

use Illuminate\Foundation\Auth\User;
php artisan make:model Admin -m

模型Admin.php(参考appUser.php)





- 阅读剩余部分 -

一、json_encode()

<?php
$arr =array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>

输出

{"a":1,"b":2,"c":3,"d":4,"e":5}

再看一个对象转换的例子:

$obj->body           = 'another post';
$obj->id             = 21;
$obj->approved       = true;
$obj->favorite_count = 1;
$obj->status         = NULL;
echo json_encode($obj);

- 阅读剩余部分 -

本文介绍了PHP开发中遇到的数组问题,这里介绍了判断PHP数组为空的5种方法,有需要的朋友可以借鉴参考一下。

1. isset功能:判断变量是否被初始化

说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过
注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右

<?php
$a = '';
$a['c'] = '';
if (!isset($a)) echo '$a 未被初始化' . "";
if (!isset($b)) echo '$b 未被初始化' . "";
if (isset($a['c'])) echo '$a 已经被初始化' . "";
// 显示结果为
// $b 未被初始化
// $a 已经被初始化

- 阅读剩余部分 -

public: 公有类型

在子类中可以通过self::var调用public方法或属性,parent::method调用父类方法
在实例中可以能过$obj->var 来调用 public类型的方法或属性

protected: 受保护类型

在子类中可以通过self::var调用protected方法或属性,parent::method调用父类方法
在实例中不能通过$obj->var 来调用  protected类型的方法或属性

- 阅读剩余部分 -

1、=>的用法
在php中数组默认键名是整数,也可以自己定义任意字符键名(最好是有实际意义),如:

$css=array('style'=>'0',‘color’=>‘green‘);

则$css['style']=='0',$css['color']=='green'。


- 阅读剩余部分 -

<?php
header('Content-Type:text/html;Charset=utf-8');
$db = new mysqli();
$db->connect('localhost','root',12345,'test');
$sql='select * from category';
$query=$db->query($sql);


while($rs=mysqli_fetch_array($query)){
    $result[]=$rs;
}
$i=0;
print_r($result);
echo '<hr>';
foreach($result as $key=>$value){
    $i+=1;
    if($i%2==0){
    echo $key.' ';
        echo $value.'<hr>';
    }
}
$query->free();
$db->close();

示例:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{http_host} ^cnweed.com [NC]
RewriteRule ^(.*)$ https://www.cnweed.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

获取前一天的时间:
$mytime= date("Y-m-d H:i:s", strtotime("-1 day"));

获取三天前的时间:
$mytime= date("Y-m-d H:i:s", strtotime("-3 day"));

获取前3个月的时间:
$mytime= date("Y-m-d H:i:s", strtotime("-3 month"));

获取前一个小时的时间:
$mytime= date("Y-m-d H:i:s", strtotime("-1 hour"));

获取前一年的时间:
$mytime= date("Y-m-d H:i:s", strtotime("-1 year"));

比较简单的判断方式,直接查询域名是否存在dns……

if(IS_POST){
    $sld=I('sld');
    $tld=I('tld');
    $domain=$sld.$tld;
    $response = @dns_get_record($domain, DNS_ALL);

    if(empty($response)){
        echo "<H2 style='color:green;' >Domain $name_domain is available.</H2>";
    }else{
        echo "<H2 style='color:red;'>Domain $name_domain has taken.</H2>";
    }
}