PHP学习笔记(三)

一 函数

    函数名目前不区分大小写。形式:

    function funtionName(parameters){function-body}

    函数调用时,代码执行权进入函数,函数结束,交回执行权,或者函数碰到return语句,返回,交回执行权。

    关于一些字符串函数示例:

<?php

//字符串长度

echo strlen("中国"),"<br/>";

//字符串查找字符位置

$str = "abcdef";

var_dump(strpos($str,"b"));

echo "<br/>";

//替换字符

$str01 = "hi fuck";

echo str_replace("fuck","**",$str01);

//截取字符串

$str02 = "明天是另外一天。";

echo substr($str02,0,6);//明天

//拆分字符串

$str03 = "www,baidu,com";

$arr = explode(",",$str03);//再合起来,用implode

var_dump($arr);

echo "<br/>",$arr[1],"<br/>";//baidu

echo implode($arr,".");

?>


二 数组

    1 数组是一组符合数据,可以装下多个值,每个值用不同的键来区分。有索引数组和关联数组。

    2 键声明重复,后面值覆盖前面。

    3 如果不声明键,默认0,1,2递增。

    4 数组单元操作:

          end() - 将数组的内部指针指向最后一个单元

key() - 从关联数组中取得键名

each() - 返回数组中当前的键/值对并将数组指针向前移动一步

prev() - 将数组的内部指针倒回一位

reset() - 将数组的内部指针指向第一个单元

next() - 将数组中的内部指针向前移动一位

代码示例:

<?php

//在数组头添加元素

$state = array("Ohio","New York");

echo "添加前:","<br/>";

print_r($state);

echo "<br/>";

array_unshift($state,"California","Texas");

echo "添加后:","<br/>";

print_r($state);

echo "<br/>";

?> 

<hr/>

<?php

//在数组尾添加元素

$state = array("Ohio","New York");

echo "添加前:","<br/>";

print_r($state);

echo "<br/>";

array_push($state,"California","Texas");

echo "添加后:","<br/>";

print_r($state);

echo "<br/>";

?> 

<hr/>

<?php

//从数组头删除元素

$state = array("Ohio","New York","California","Texas");

echo "删除前:","<br/>";

print_r($state);

echo "<br/>";

array_shift($state);

echo "删除后:","<br/>";

print_r($state);

echo "<br/>";

?> 

<hr>

<?php

//从数组尾删除元素

$state = array("Ohio","New York","California","Texas");

echo "删除前:","<br/>";

print_r($state);

echo "<br/>";

array_pop($state);

echo "删除后:","<br/>";

print_r($state);

echo "<br/>";

?> 

<hr/>

<?php

//定位数组元素

$state = array("A"=>"Ohio","B"=>"New York","C"=>"California","D"=>"Texas");

$aa = "New York";

$boo = in_array($aa,$state);

var_dump( $boo);

//搜索数组键

var_dump(array_key_exists("A",$state));//false

//搜索数组值,返回键

var_dump(array_search("New York",$state));

//获取数组所有键

$keys = array_keys($state);

echo "<br/>";

print_r($keys);

//获取所有值

$value = array_values($state);

echo "<br/>";

print_r($value);

//移动数组指针,下一个位置next(),前一个位置pre(),重设开头reset(),最后一个end()

$a = current($state);

echo "<br/>",$a;

$a = next($state);

echo "<br/>",$a;

$a = next($state);

echo "<br/>",$a;

$a = prev($state);

echo "<br/>",$a;

$a = end($state);

echo "<br/>",$a;

//数组大小

echo "<br/>",count($state);

//排序

asort($state);

print_r($state);//保持键值关联

sort($state);

print_r($state);//键值关联不再保持,

rsort($state);

print_r($state);//逆序,不保持键值关联,保持用arsort()

?> 

<hr/>

<?php

//合并数组

$state = array("A"=>"Ohio","B"=>"New York","C"=>"California","D"=>"Texas");

$state1 = array("D"=>"beijing","F"=>"shanghai");

print_r(array_merge($state,$state1));//键值相同的,新值覆盖旧值。

$money = array("jane"=>"100","bruce"=>"300");

$money1 = array("bill"=>"400","bruce"=>"500");

//$a = array(3,4,5);

//$b = array(4,9,10);

echo "<br/>";

print_r(array_merge_recursive($money,$money1));//键值相同,新旧值保存在一个数组中

//拆分数组

echo "<br/>";

print_r(array_slice($state,1,2));

?>

<hr/>

<?php

$state = array("A"=>"Ohio","B"=>"New York","C"=>"California","D"=>"Texas");

foreach($state as $key1=>$value1){

echo $key1;

echo $value1;

echo "<br/>";

}

?>


三 常量 

    如:define("PI",3.14)    如类中const    PI=3.14

    1、const用于类成员变量定义,一旦定义且不能改变其值。define定义全局常量,在任何地方都可以访问。

    2、define不能在类中定义而const可以。

魔术常量 要了解的:

几个 PHP 的“魔术常量”

名称 说明

__LINE__ 文件中的当前行号。

__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。

__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) =

__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

__CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。

__TRAIT__ Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。

__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

__NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。


四 mysql 

    命令行启动:

    mysql -h host -u -p  然后输入密码,即可连接数据库。不能链接先检查几个方面:一是服务有没有启动,二是环境变量有没有设置。

    查看库:show databases; 

    使用:use 库名称

    查看表:show tables;

代码示例:

<?php

//资源型变量就是一个管道;

$conn = mysql_connect("localhost","root","987654");

if(!$conn){

echo "连接失败!<br/>";

exit;

}else{

echo "成功连接!<br/>";

}

$sql = "use fkjava";

$rs = mysql_query($sql,$conn);

$sql = 'set names utf8';

mysql_query($sql,$conn);

/* 

//插入数据

$id = 4;

$name = "bruce";

$age = 28;

$email = "[email protected]";

$sql = "insert into emp values($id,'$name',$age,'$email')";

//$sql = "insert into emp values(5,'bruce',54,'[email protected]')";

$rs = mysql_query($sql,$conn);

if(!$rs){

echo "读写失败!";

exit;

}else{

echo "成功!<br/>";

}

//删除

$id =isset($_GET["id"])? $_GET["id"]+0:0;

//$id = 9;

$sql = "delete from emp where id=".$id;

$rs = mysql_query($sql,$conn);

if(!$rs){

echo "删除失败!原因:",mysql_error();

exit;

}else{

echo "删除成功!";

}

*/

//更新

$sql = "update emp set name='赵柳' where id=6";

$rs = mysql_query($sql,$conn);

//查询

$sql = "select * from emp";

$rs = mysql_query($sql,$conn);

//$aa = mysql_fetch_assoc($rs);

//print_r(mysql_fetch_assoc($rs));

while($aa = mysql_fetch_assoc($rs)){

print_r($aa);

echo "<br/>"; 

}

mysql_close($conn);

?>

    



你可能感兴趣的:(PHP学习笔记(三))