php学习笔记(二)
1、php的switch比较特别,支持字符串等其他基础类弄。
function dump_array($var)
{
switch(gettype($var)){
case 'integer':
case 'double':
case 'string':
echo $var;
break;
case 'array':
echo '<table border="1">';
do{
echo '<tr><td align="left" valign="top">';
echo key($var);
echo '</td><td>';
dump_array($var[key($var)]);
echo '</td></tr>';
} while (next($var));
echo '</table>';
break;
default:
echo 'Unknow data type.';
break;
}
}
2、面向对象
2.1 php对 对象的支持并不完整,例如不能充分使用多态性,以执行一个被覆盖的父类中的函数。
2.2 php不能有同一个对象的两个引用,当将一个引用赋值给第二个变量时,对像被复制一份,新的引用指向复制品。
3、url 参数都应使用 rawurlcode()函数转换编码,否则容易出现非法值而引起崩溃
使用rawurlcode编码后,接收时,解码过程是自动的。
4、php 与 html混编
php中,在函数调用前加上@可以强制不输出里面相应的警告和错误信息。
以下是一个混编的mysql数据库连接页。
<?php
require ('common.inc');
require ('post_get_arr.inc')
?>
<?php
if(empty($arr_request['username'])) {
$username = 'root0';
}
else{
$username = $arr_request['username'];
}
if(empty($arr_request['password'])) {
$password = '123456';
}
else{
$password = $arr_request['password'];
}
$id_link = @mysqli_connect('localhost' , $username , $password);
if (!$id_link){
affy_message(
"The connection to the local database has failed. Please
enter a username and password so a connection can be made."
);
?>
<!-- Display a form to gather username and password info -->
<form action="connect_db.php" method="post">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" value="root"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Connect to Database">
</td>
</tr>
</table>
</form>
<?php exit; } ?>
<p> The connect was successful!</p>
5、可以在php调用的最前面,调用这些代码,将get 和 post 参数统一放到数组中
<?php
//post and get value
$arr_request = array();
$HTTP_GET_VARS = $_GET;
$HTTP_POST_VARS = $_POST;
if (count($HTTP_GET_VARS)){
while(list($key , $value) = each($HTTP_GET_VARS)){
$arr_request[strtolower($key)] = $value;
}
}
if (count($HTTP_POST_VARS)) {
while (list($key, $value) = each($HTTP_POST_VARS)){
$arr_request[strtolower($key)] = $value;
}
}
?>
Stay hungry, stay foolish!

浙公网安备 33010602011771号