当前位置:  编程技术>php
本页文章导读:
    ▪PHP数据库编程-使用mysql扩展库对数据库操作      PHP数据库编程-使用mysql扩展库对数据库操作:<?php //使用mysql扩展库来操作mysql步骤 //1、获取连接 $conn=mysql_connect("localhost","root","root"); if(!$conn){ die("连接不成功".mysql_error()); }.........
    ▪PHP数组教程      定义数组  PHP数组array是一组有序的变量,其中每个变量被叫做一个元素。一、定义数组   可以用 array() 语言结构来新建一个数组。它接受一定数量用逗号分隔的 key => value 参数对。 array.........
    ▪Laravel Event模块分析      事件模块是一个由四个静态数组构成的部件,存在于内存中,提供事件模拟。<?php namespace Laravel;class Event {/** * 所有注册的事件 * * @var array */public static $events = array();/** * 队列事件 等待flush * .........

[1]PHP数据库编程-使用mysql扩展库对数据库操作
    来源:    发布时间: 2013-11-07

PHP数据库编程-使用mysql扩展库对数据库操作:

<?php

//使用mysql扩展库来操作mysql步骤
//1、获取连接
$conn=mysql_connect("localhost","root","root");

if(!$conn){
die("连接不成功".mysql_error());
}

//2、选择数据库
mysql_select_db("test");

//3、设置操作编码(建议有)
mysql_query("set names utf8"); //保证我们的PHP程序是按照utf8码操作

//4、发送指令sql (ddl 数据定义语句(创建表) dml(数据操作语言 update,insert delete) dql(select查询) dtl(数据事务语句 rollback ...) )
$sql = "select * from user1";

//mysql_query函数返回结果集
$res = mysql_query($sql,$conn);
//var_dump($res);
//5、接收返回结果并处理
while($row=mysql_fetch_row($res)){
//第一种取法
//$row是一个数组
//var_dump($row);
//echo $row[0]."-".$row[1]."-".$row[2]."-".$row[3]."-".$row[4];
//echo "<br/>";
//第二种取法
foreach($row as $key=>$val){
echo "-$val";
}
echo "<br/>";
}
//6、释放资源,关闭连接
mysql_free_result($res);
//关闭数据库可以没有,建议写
mysql_close($conn);
?

 

 

本文链接


    
[2]PHP数组教程
    来源:    发布时间: 2013-11-07

定义数组

  PHP数组array是一组有序的变量,其中每个变量被叫做一个元素。

一、定义数组
  可以用 array() 语言结构来新建一个数组。它接受一定数量用逗号分隔的 key => value 参数对。
array( [key =>] value , ... ) // key 可以是 数字 或者 字符串 // value 可以是任何值
例子1:

<?php 
$phpjc = array( 
0=>'word', 
3=>'excel', 
'outlook', 
'access'); 
print_r($phpjc); 
?> 

 输出结果如下 :

Array ( [0] => word [3] => excel [4] => outlook [5] => access ) 

 

  例子1定义了一个数组,名字叫phpjc,第一个元素的值是:word,(说明:数组是从0开始计数的),第二个元素为空,第三个元素是:excel,后面自动生成第四和第五个元素
  可以通过给变量赋予一个没有参数的array()来创建空数组,然后可以通过使用方括号[]语法来添加值。(注:另外也可用array_push()函数向数组中添加值!!!)  
例子2:

 

<?php
$phpjc = array(); 
$phpjc[] = "one"; 
$phpjc[] = "two"; 
echo $phpjc[0]."<br>"; 
echo $phpjc[1]; 
?>

输出结果如下 :

one 
two 


二、读取数组元素
  使用字符串索引(或键)来访问储在数组中的值
  例子3:

<?php
$phpjc = array("first"=>1,"second"=>2,"third"=>3); 
echo $phpjc["second"]; 
$phpjc["third"]=5; //把第三个元素的值由“3”修改为“5” 
echo $phpjc["third"]; 
?>

 
  PHP中有很多数组相关的函数,一一用实例说明了is_array()、n_array()、count()、array_push()、array_unshift()、array_merge()、array_pop()、array_shift()、sort()

1.is_array()函数

  是否为数组
-----------------------------------------------------------
2.in_array()函数
  如果你有很大的一个数组,而所要完成的仅是找出一个存在的给定值,你可以使用in_array()以返回true 或 false。如下代码将输出“Not found in this array”——因为你将在$namesArray中寻找一个并不存在的“Alber ”。


    
[3]Laravel Event模块分析
    来源:    发布时间: 2013-11-07

事件模块是一个由四个静态数组构成的部件,存在于内存中,提供事件模拟。

<?php namespace Laravel;

class Event {

/**
* 所有注册的事件
*
* @var array
*/
public static $events = array();

/**
* 队列事件 等待flush
*
* @var array
*/
public static $queued = array();

/**
* 队列flush之后回调
*
* @var array
*/
public static $flushers = array();

/**
* 注册事件是否有回调
*
* @param string $event
* @return bool
*/
public static function listeners($event)
{
return isset(static::$events[$event]);
}

/**
* 注册事件回调
*
* <code>
*// "start" 事件
*Event::listen('start', function() {return 'Started!';});
*
*// 注册对象实例方法回调
*Event::listen('event', array($object, 'method'));
* </code>
*
* @param string $event
* @param mixed $callback
* @return void
*/
public static function listen($event, $callback)
{
static::$events[$event][] = $callback; # 数据格式 [$event] array $object,methodName
}

/**
* 给定事件重写所有回调
*
* @param string $event
* @param mixed $callback
* @return void
*/
public static function override($event, $callback)
{
static::clear($event);

static::listen($event, $callback);
}

/**
* 队列增加数据
*
* @param string $queue
* @param string $key
* @param mixed $data
* @return void
*/
public static function queue($queue, $key, $data = array())
{
static::$queued[$queue][$key] = $data;
}

/**
* 注册队列执行回调
*
* @param string $queue
* @param mixed $callback
* @return void
*/
public static function flusher($queue, $callback)
{
static::$flushers[$queue][] = $callback;
}

/**
* 清楚所给事件回调
*
* @param string $event
* @return void
*/
public static function clear($event)
{
unset(static::$events[$event]);
}

/**
* 触发事件 返回第一值
*
* <code>
*// Fire the "start" event
*$response = Event::first('start');
*
*// Fire the "start" event passing an array of parameters
*$response = Event::first('start', array('Laravel', 'Framework'));
* </code>
*
* @param string $event
* @param array $parameters
* @return mixed
*/
public static function first($event, $parameters = array())
{
return head(static::fire($event, $parameters)); # 执行所有回调 但只提取第一值
}

/**
* 触发事件返回第一个值
*
* 第一个值返回之后执行被挂起
*
* @param string $event
* @param array $parameters
* @return mixed
*/
public static function until($event, $parameters = array())
{
return static::fire($event, $parameters, true); # 未执行所有回调 只执行第一值
}

/**
* 刷新事件多列, 触发每个占位
*
* @param string $queue
* @return void
*/
public static function flush($queue)
{
foreach (static::$flushers[$queue] as $flusher)
{
if ( ! isset(static::$queued[$queue])) continue;

foreach (static::$queued[$queue] as $key => $payload)
{
array_unshift($payload, $key); # 调整参数

call_user_func_array($flusher, $payload); # 调用
}
}
}

/**
* 触发事件所有监听器
*
* <code>
*// "start" 事件
*$responses = Event::fire('start');
*
*// "start" 事件参数
*$responses = Event::fire('start', array('Laravel', 'Framework'));
*
*// 同一参数触发多个事件
*$responses = Event::fire(array('start', 'loading'), $parameters);
* </code>
*
* @param string|array $events
* @param array $parameters
* @param bool $halt
* @return array
*/
public static function fire($events, $parameters = array(), $halt = false)
{
$responses = array();

$parameters = (array) $parameters; # 参数是array

// 遍历触发 返回结果集
foreach ((array) $events as $event)
{
if (static::listeners($event))
{
foreach (static::$events[$event] as $callback) # 遍历监听器
{
$response = call_user_func_array($callback, $parameters); # 实例方法触发原因:call_user_func_array 换成反射就能提供更多方式 换成Ding更好

// 第一值返回挂起
if ($halt and ! is_null($response))
{
return $response;
}

// 结果集
$responses[] = $response;
}
}
}

return $halt ? null : $responses; # 挂起标记
}

}

只提供模拟,不支持数据化,不支持分布式。
不过够简单,简洁就是美丽。

就理解上来说,事件模块可以被其他所有模块调用,但是需要安排好唯一标识,防止覆写。

  

本文链接


    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3