分类 PHP 下的文章

in_array 函数只针对一维数组,经过简单的构造,就可以查询多维数组。

$arr = array(  
    array('a', 'b'),  
    array('c', 'd')  
);  

in_array('a', $arr); // 此时返回的永远都是 false  
deep_in_array('a', $arr); // 此时返回 true 值  

function deep_in_array($value, $array) {   
    foreach($array as $item) {   
        if(!is_array($item)) {   
            if ($item == $value) {  
                return true;  
            } else {  
                continue;   
            }  
        }   

        if(in_array($value, $item)) {  
            return true;      
            } else if(deep_in_array($value, $item)) {  
            return true;      
        }  
    }   
    return false;   
}

转自:http://www.phpfensi.com/php/20140710/3731.html

PHP中用foreach()循环中,想要在循环的时候,当满足某个条件时,想要跳出本次循环继续执行下次循环,或者满足某个条件的时候,终止foreach()循环,分别会用到:continue 与 break

$arr= array('le','yang','jun','code','life','a','b','c');
$html= '';
foreach($arr as $key => $value){
    if($value == 'a'){
      $html.= $value;
    }
    if($value =='b'){
        $html.= $value;
        continue;// 当 $value为b时,跳出本次循环
    }
    if($value =='c'){
        $html.= $value;
        break;// 当 $value为c时,终止循环
    }
    //$html.= $value;
}
echo $html; // 输出: abc 

可以使用json_decode函数

$object = json_decode($array); //得到的是 object 数据类型。
$array = json_decode($object, ture); //得到的则是数组。

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();
?>

输出

- 阅读剩余部分 -

本文实例讲述了php计算两个日期相差天数的方法。分享给大家供大家参考。具体实现方法如下:

实例一:

/**
 * 求两个日期之间相差的天数
 * (针对1970年1月1日之后,求之前可以采用泰勒公式)
 * @param string $date1
 * @param string $date2
 * @return number
 */
function diff_date($date1, $date2){
    if($date1>$date2){
        $startTime = strtotime($date1);
    $endTime = strtotime($date2);
    }else{
    $startTime = strtotime($date2);
    $endTime = strtotime($date1);
    }
    $diff = $startTime-$endTime;
    $day = $diff/86400;
    return intval($day);
}

- 阅读剩余部分 -

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

创建用户模块 以及数据库

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

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

模型Admin.php(参考app\User.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类型的方法或属性

- 阅读剩余部分 -