⑴ 綜合應用資料庫知識和用面向對象編程技術在php程序中創建出學生類
PHP使用面向對象的編程方式來編寫資料庫操作類
步驟1:創建一個PHP的頁面「config.php」定義資料庫相關的參數
<?php // config.php
define(?DB_USER?, "username");
define(?DB_PASSWORD?, "password");
define(?DB_DATABASE?, "database name");
define(?DB_SERVER?, "ip address of database server");
?>
第2步:創建一個PHP的類,用於連接資料庫,命名為「db_connect.php」
<?php // db_connnect.php
class DB_Connect {
private $con;
// constructor
function __construct() {
// connecting to database
$this->con = $this->connect();
}
//Function to connect with database
private function connect() {
// import database connection variables
require_once __DIR__.?/config.php?;
try {
$conn = new PDO(?mysql:host=?.DB_SERVER .?;
dbname=?.DB_DATABASE, DB_USER, DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo ?ERROR: ? . $e->getMessage();
}
return $conn;
}
public function getDbConnection(){
return $this->con;
}
}
?>
第3步:創建一個類,它包含了所有的功能,為您實現SQL查詢,命名為「db_functions.php」
調用裡面的函數進行SQL查詢、以促進可重用性和可維護性
<?php // db_functions.php
class DB_Functions {
private $con;
// constructor
function __construct() {
require_once __DIR__.?/db_connect.php?;
// connecting to database
$db = new DB_Connect();
$this->con = $db->getDbConnection();
}
public function selectUser($id) {
try {
$stmt = $this->con->prepare(?SQL語句?);
$params = array(?:id? => $id);
$stmt->execute($params);
return $stmt;
} catch(PDOException $e) {
echo ?ERROR: ? . $e->getMessage();
}
}
public function otherSQLfunction($parameter) {
// other sql code
}
}
第4步:最後,在你其他的PHP文件裡面只需要簡單地調用「db_functions.php」的方法
<?php
require_once __DIR__.?/db_functions.php?;
$db = new DB_Functions();
$result = $db->selectUser($id);
// other code
?>
⑵ PHP練習題
1、PHP語言標記是(B )。
A、<……>
B、<?php……?>
C、?…………?
D、/*………*/
2、PHP代碼要想以「<?」為開頭,以「?>」為結束,需要啟用配置文件中的(A )選項。
A、short_open_tag
B、asp_tags
C、allow_call_time_pass_reference
D、safe_mode_gid
4、PHP語句以什麼符號結束( C )
A、 .
B、 :
C、 ;
D、無需任何符號,換行就行
5、PHP中那些字元被認為是間隔字元(空白符)( A )。
A、空格
B、下劃線字元
C、製表符
D、回車符
⑶ 一個很簡單的PHP面向對象 問題
如果不是寫在類里 你這個就是一個函數
如果寫在類里 你這個就是一個類里的一個方法
function_get()括弧里如果沒有參數就不要填 直接調用這個函數可以了
括弧中間的是參數,意思就是你寫這個函數的時候需要外部調入的數據才能完成
function __set($name,$value) 不一定是類里的屬性 不是很熟悉對類 是外部傳入的參數 比如
$a=1;$b=8;
function _set($a,$b)
{
return $a+$b;
}
$c= _set($a,$b);
這個時候$c就是9
不知道你看懂了沒 呵呵
⑷ 一個關於PHP面向過程和面向對象的問題
面向對象,是把一些常用的操作進行類封裝起來,方便調用,需要用的地方,調用一下即可,這樣,開發方便,維護也方便!修改這個封裝的類,即可達到修改全站的目的!
面向過程,是在每一個地方都使用單獨的代碼進行操作,這樣開發的時候重復累贅,維護的時候也很累,你修改了哪裡,就只在哪裡起作用!
比如,初學php,最基本的連接資料庫和查詢資料庫都會這樣寫:
<?php
$Con=mysql_connect(.........);
mysql_query('setnamesutf8');
mysql_select_db(....);
$query=mysql_query($sql);
while($Rs=mysql_fetch_aray($query)){
echo$Rs[0];
}
等等這樣,操作10次資料庫,就寫10次這樣的代碼!
而如果封裝一個類,意義就不同了!
<?php
classmysql{
var$Con;
var$table;
publicConnEct($local,$root,$pass,$base,$code){
$this->Con=mysql_connect($local,$root,$pass);
mysql_query('setnames'.$code);
mysql_select_db($base);
}
publicTab($Table){
$this->table=$Table;
return$this;
}
publicSelect(){
$rs=mysql_query('select*from'.$this->table)
while($Rs=mysql_fetch_array($rs){
$Rule[]=$Rs;
}
return$Rule;
}
}
把上面的代碼保存成一個文件,比如是mysql.php,在需要操作資料庫的地方引入這個文件,那麼要查詢資料庫的一個表就非常方便了!
<?php
include_once'mysql.php';
$Mysql=newmysql;//實例化一個類;
$Mysql->ConnEct('localhost','root',123456,'table','utf8');//連接資料庫
$Resul=$Mysql->Tab('user')->Select();//查詢user表,並返回數組結果
print_r($Resul);//列印這個數組
以上個人見解,僅供參考
⑸ 請教PHP面向對象編程
樓上給的例子,是正確的,只不過聲明訪問許可權的時候用的是PHP4的語法。
修正一下:
-------------------------------------------------------------------
<?php
class A
{
public static $name="張三";
}
class B
{
public static $name="李四";
}
class C
{
public $a;
public $b;
public function __construct()
{
$this->a=new A;
$this->b=new B;
}
public function outputValue()
{
printf("a::name=%s,b::name=%s\n",$this->a->name,$this->b->name);
}
}
$c=new C;
$c->outputValue();
⑹ php面向對象面試題
其實這個問題很簡單啦,兩分鍾就可以請清楚啦,我在這里先說一下思想;
首先你得寫一個類表示人,如:person類;
小劉、小張、MrJosnon、MrJohn等都是這個person類的一個實例;
並且人力資源部問問題這是這個person類當中的一個方法,然後每個人都可以繼承自person類,然後又有各自己相關方法等;
然後你得寫一個國家類,如:Country類,然後中國是這個國家的一個具體實例;
然後你得寫一個城市類,如:City類;然後上海是City類的一個實例;
同樣,你得寫一個公司類,如:Company類,然後那兩個公司又是Company類的兩個實例,並且你還得寫一個部門類,如:Depart類,然後人力資源部是部門的一個實例;
上面只是這個問題的中文描述,你可以參考一下;