<?php function maxnum($a, $b, $c){ return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c); } echo maxnum(33,67,5); ?>
或直接写 max() 函数
学习日志 LIUGUOFENG
<?php function maxnum($a, $b, $c){ return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c); } echo maxnum(33,67,5); ?>
或直接写 max() 函数
当你在你的脚本中写下这样一行代码
$myvariable; //此处你想定义一个变量,但未赋值。会有Notice: Undefined variable echo $myvariable + 3; //使用这个变量出现:Notice: Undefined variable: myvariable in
如果将其改写成:
$myvariable = NULL; echo $myvariable + 3; //这样就不会有问题了
所以得出在你的脚本在使用一个变量时最好赋一个默认值,如果你不想,就可以将NULL赋给变量,表示这个变量已经定义但没有值,属于NULL类型。
bool is_null ( mixed $var ) (php.net官方文档的函数定义)
当参数满足下面三种情况时,is_null()将返回TRUE,其它的情况就是FALSE
1、它被赋值为NULL
2、它还没有赋值
3、它未定义,相当于unset(),将一个变量unset()后,不就是没有定义吗
让我们来看一些例子:
$myvar = NULL; var_dump(is_null($myvar)); // TRUE $myvar1; var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable $num = 520; unset($num); var_dump(is_null($num)); //TRUE Notice: Undefined variable var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable $myvar = 0; is_null($myvar); // FALSE $myvar = FALSE; is_null($myvar); // FALSE $myvar = ''; is_null($myvar); // FALSE
bool isset ( mixed $var [, mixed $... ] ),参数是一个变量
检测参数已设定,并且不是NULL。如果没有设置变量,变量未赋值,或变量被设为NULL,isset()函数就返回NULL。
正好和is_null()函数相反,is_null()为TRUE的情况在isset()中就为FALSE。有意思!
如果传递多个参数,将取交集。即所有参数全部符合 isset() 时才返回 TRUE。
似乎让人感觉有点困惑,来看一些例子:
$myvar = NULL; isset($myvar); // FALSE 当一个变量被赋值为NULL时,就表示这个变量没有值 $myvar = 0; isset($myvar); // TRUE $myvar = FALSE; isset($myvar); // TRUE $myvar = ''; isset($myvar); // TRUE isset($some_undefined_var); // FALSE Undefined variable
可以看出isset()着重检测一个 变量是否设置和这个变量是否有具体的值,当变量满足这两种情况时isset()返回TRUE
bool defined ( string $name )
检测是否设置常量
bool empty ( mixed $var )
判读变量是否为空。
请见上面的类型比较表empty()那一列你就明白哪些情况是空的情形了。还有其他一些函数的参照。
来看一些例子:
$myvar = NULL; empty($myvar); // TRUE $myvar = 0; empty($myvar); // TRUE $myvar = FALSE; empty($myvar); // TRUE $myvar = ''; empty($myvar); // TRUE empty($some_undefined_var); // TRUE
empty()为TRUE的情况,若变量不存在,或者变量存在且其值为""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE。
一般如!empty()的判断,就是变量存在,且值不为""、0、"0"、NULL、FALSE、array()以及只是单纯定义一个变量$var。
<?php function recursive($dir) { $handle = opendir($dir); echo "<ul>"; while($line = readdir($handle)){ if($line == '.' || $line == '..') continue; echo "<li>".iconv('gbk','utf-8',$line)."</li>"; if(is_dir("$dir/$line")){ recursive("$dir/$line"); } } echo "</ul>"; closedir($handle); } recursive("./") ?>
function stripscript(s) { returns.replace(/<script.*?>.*?<\/script>/ig, ''); }
/ 之间的内容 / 是 regex 正则语句的书写开始与结束
<?php $people = array("Peter", "Joe", "Glenn", "Cleveland"); if(in_array("Glenn", $people)) { echo"Match found"; }else{ echo"Match not found"; } ?>
输出:
Match found
<?php $a = array("a"=>"Dog", "b"=>"Cat"); if(array_key_exists("a", $a)) { echo"Key exists!"; }else{ echo"Key does not exist!"; } ?>
输出:
Key exists!
<?php $a = array("a" => "Dog", "b" => "Cat", "c" => 5, "d" => "5"); echo array_search("Dog", $a); echo array_search("5", $a); ?>
输出:
ac
<?php /** * array_push() 将一个或多个单元压入数组的末尾(入栈) */ $stack = array("Java", "Php", "C++"); array_push($stack, "C#", "Ruby", array('jsp', 'Asp')); print_r($stack); echo "====================================="."<br>"; /** * array_pop() 将数组最后一个单元弹出(出栈) */ $stack = array("Java", "Php", "C++", "C#", "Ruby"); array_pop($stack); print_r($stack); echo "====================================="."<br>"; /** * array_shift() 将数组开头的单元移出数组 array_unshift() 在数组开头插入一个或多个单元 */ $stack = array("Java", "Php", "C++", "C#", "Ruby"); array_shift($stack); print_r($stack); ?>
运行结果如下:
首先我们要理解一下快速排序的原理:找到当前数组中的任意一个元素(一般选择第一个元素),作为标准,新建两个空数组,遍历整个数组元素,
如果遍历到的元素比当前的元素要小,那么就放到左边的数组,否则放到右面的数组,然后再对新数组进行同样的操作,
不难发现,这里符合递归的原理,所以我们可以用递归来实现。
使用递归,则需要找到递归点和递归出口:
递归点:如果数组的元素大于1,就需要再进行分解,所以我们的递归点就是新构造的数组元素个数大于1
递归出口:我们什么时候不需要再对新数组不进行排序了呢?就是当数组元素个数变成1的时候,所以这就是我们的出口。
<?php $arr = array(6,5,32,8,4,5,1); function quick_sort($arr){ if(!is_array($arr))return false; $length = count($arr); if($length<=1)return $arr; $left = $right = array(); for($i = 1; $i<$length;$i++){ if($arr[$i]<$arr[0]){ $left[] = $arr[$i]; }else{ $right[] = $arr[$i]; } } $left = quick_sort($left); $right = quick_sort($right); return array_merge($left,array($arr[0]),$right); } echo "<pre>"; print_r(quick_sort($arr));
输出:
Array ( [0] => 1 [1] => 4 [2] => 5 [3] => 5 [4] => 6 [5] => 8 [6] => 32 )
安装 mysql-5.5.24-win32.msi
设置密码 root
测试是否安装成功
CMD下
set path
mysql.exe -hlocalhost -uroot -proot
修改php配置文件php.ini(复制php.ini-development进行修改)
开启PHP扩展文件目录
extension_dir = "ext"
extension=php_mysql.dll
当Apache启动时,指定php.ini文件的路径
PHPIniDir "C:\wamp\PHP5"
保存重启Apache
测试PHP与MySQL是否连通
//使用PHP的函数,来连接MySQL服务器
//Resource id #3是一个资源的数据类型,说明MySQL已经成为了PHP的资源了。
echo mysql_connect("localhost","root","root");
解压到安装目录
在Apache里加载PHP5模块,并指定扩展名与文件内容进行绑定
#Apache启动时,去加载PHP5的模块
LoadModule php5_module C:\wamp\PHP5\php5apache2_2.dll
#将指定的扩展名,与文件内容进行绑定
AddType application/x-httpd-php .php .html
配置环境变量
修改php配置文件php.ini(复制php.ini-development进行修改)
开启PHP扩展文件目录
extension_dir = "ext"
extension=php_mysql.dll
当Apache启动时,指定php.ini文件的路径
PHPIniDir "C:\wamp\PHP5"