|
|
|
จริงเหรอ ที่มีคนบอก ภาษา PHP ง่ายสุด ( procedural, OOP ) |
|
|
|
|
|
|
|
สำหรับผม
ผมว่าจริงคับ php ง่ายที่สุด โดยเฉพาะกับผู้เริ่มต้น
แต่ไม่ว่าภาษาอะไรทำงานได้อย่างใจมันก็โอเคแล้วหละคับ
ถ้ามันยังไม่พอก็หาภาษาที่รองรับกับงานที่จะทำ
ไม่มีใครรู้ทุกอย่าง ผมต้องเรียนรู้ เราทุกคนต้องเรียนรู้
|
|
|
|
|
Date :
2009-06-05 16:50:34 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สำหรับคนอื่นอาจจะง่าย แต่สำหรับผม ไม่ใช่ครี่ๆ ครับ
ผมก็เริ่มเล่นกับมันตั้งแต่ตอนทำโปรเจคเหมือนกัน ซึ่งมันก็พอไปได้ และที่สำคัญ ที่เรียนมา ทำ 5 อะไรไม่เป็นนอกจากที่ทำโปรเจคมาเท่านั้น
|
|
|
|
|
Date :
2009-06-05 16:50:48 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมว่าก็ควรจะหัดเขียนเป็น OOP ได้แล้วอ่ะคับ
เพราะเมื่อคุณได้ concept OOP เมื่อนั้น คุณจะใช้ภาษาอะไรเขียนก็ได้แล้วล่ะคับ
ไม่จำเป็นต้อง php ถึงตอนนั้นคุณอาจจะคิดว่า ภาษาอื่นๆ ก็ง่ายเหมือนกัน ^^
โดยส่วนตัวแล้ว ผมมองว่าภาษาต่างๆ ก็เป็นแค่เครื่องมือในการแปลง สิ่งที่เราคิด ให้ออกมาเป็นชิ้นงาน
แล้วประสบการณ์ + concept เป็นสิ่งที่ช่วยให้เราใช้เครื่องมือนั้น ได้รวดเร็ว ถูกต้องมากยิ่งขึ้น
ผมมองเป็นสมการเคมีประมาณว่า
สิ่งที่คิด + ภาษาที่ใช้เขียน ----------> ชิ้นงาน
แล้วใส่ตัวเร่งปฏิกิริยา 2 ตัวคือ experience กับ concept ยิ่งเราใส่มาก ก็จะยิ่งเป็นชิ้นงานเร็วขึ้น
แต่จะไม่ใส่เลยก็ได้ ก็ค่อยๆทำปฏิกิริยากันไป เช่น โพสถามบ้าง หรือถ้าแก้ก็แก้เยอะหน่อยทำให้เสียเวลาเพิ่มขึ้นอีก
เป็นชิ้นงานช้าขึ้นอีกหน่อย
แหะๆ ผมเปรียบเทียบเว่อร์ไปม่ะ
|
|
|
|
|
Date :
2009-06-05 17:01:51 |
By :
nut_t02 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เรียนก็คือ ทฤษฎี ปฏิบัติ คือชิ้นงาน ในเมื่อเราไม่เคยทำ ชิ้นงานมาก่อน มันก็ยากเป็นเรื่องธรรมดา
แต่จุดนี้ก็ทำให้ หลายคนเปลี่ยนไป มองว่าสิ่งที่ยากกลายเป็นง่ายไปได้ถ้าทำโปรเจกต์สำเร็จ ดังนั้นคนที่ทำโปรเจกต์แรก ไม่ควรที่จะทำแบบครึ่งๆกลางๆ
แน่นอนว่าไม่มีอะไรที่ได้มาง่ายๆ ผมเองก็เหมือนกัน แต่ผมไม่คิดว่ามันยาก ก็เลยยังเดินต่อไปได้ในที่มืดๆ ต่อไปถึงแม้ยังไม่เห็นแสดงสว่าง ที่ตั้งใจไว้
|
|
|
|
|
Date :
2009-06-05 17:15:31 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+1 โดนใจคับ เพราะโปรเจค php โปรเจคแรกในชีวิตของผมก็ทำแบบสุดๆไปเลย ทั้งที่แค่ หน่วยกิตเดียว
แค่ก็คุ้มเพราะได้เรียนรู้ตอนทำโปรเจคนี่แหละคับ
|
|
|
|
|
Date :
2009-06-05 17:19:59 |
By :
nut_t02 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แต่ที่ว่าง่ายได้ตอนนี้ เพราะผ่านมาแล้วไงคับ
ถ้าให้ทำโปรเจกต์แรกใน Java ผมก็มีอยู่ 1 โปรเจกต์ ซึ่งก่อนเขียนผมไม่ได้มีความมั่นใจเลยว่าจะทำได้
สิ่งที่สำคัญคือการรู้จุดอ่อนจุดแข็งของตัวเอง และการวางแผน ที่ดีที่สุดที่คิดว่าจะทำโปรเจกต์นั้นสำเร็จได้
|
|
|
|
|
Date :
2009-06-05 17:24:14 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เหอๆ ผมก็โดนบังคับ เรื่องโปรเจคนี่แหละ
ผมอาจจะได้เยอะกว่าเพือนๆ ในห้อง
เพระาในห้องไม่มีใครรุ้ php เลย เพราะมหาลัยผมไม่ได้สอน
เลยมีโอกาศ ได้ทำหลายๆ โปรเจค และเป็นที่ปรึกษา ได้รับประสบการณ์จากการทำโปรเจคเยอะจริงๆ ครับ
จากแต่ก่อน คิดว่า โปรเจคจบ คือ สิ่งที่วัดอะไรไม่ได้ งี่เง่า ทำให้คนอื่นไม่งบ ทำให้นักศึกษาต้องเสียเงินจ้าง
แต่ตอนนี้ ความคิดผมเปลี่ยน ถ้าไม่มีโปรเจค ผมคงไม่มีวันนี้ ซึ้งงงงงงงงงงงง
|
|
|
|
|
Date :
2009-06-05 17:28:20 |
By :
danya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
^^ ถึงจะ " ยาก" แต่ไม่หมายความว่า " เป็นไปไม่ได้ " ^^ สู้ครับ ภาษาคอมพิวเตอร์ในโลกนี้มีเยอะมากมาย เหมือนภาษาพูดแหละครับ ไม่มียาก ไม่มีง่าย มีแต่รู้ หรือ ไม่รู้ เท่านั้นเอง งิงิ
ก้าวต่อไป! ! !... (ระวังขี้หมาด้วย)
|
|
|
|
|
Date :
2009-06-05 18:18:22 |
By :
noomna19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
class mysql_config {
var $dbconfig = array(
'hostname' => NULL ,
'username' => NULL ,
'password' => NULL ,
'database' => NULL ,
'collation_connection' => NULL ,
'character_set' => NULL
);
function mysql_config(){
$GLOBALS['global_mysql_querydb_timer'] = 0;
$GLOBALS['global_mysql_querydb_counter'] = 0;
}
function get_querydb_timer() {
global $static_query_timer;
if(isset($static_query_timer)) return $static_query_timer;
else return $GLOBALS['global_mysql_querydb_timer'];
}
function get_querydb_counter() {
global $static_querydb_count;
if(isset($static_querydb_count)) return $static_querydb_count;
else return $GLOBALS['global_mysql_querydb_counter'];
}
function set_querydb_timer($value) {
global $static_query_timer;
if(isset($static_query_timer)) $static_query_timer = $value;
else $GLOBALS['global_mysql_querydb_timer'] = $value;
}
function set_querydb_counter($value) {
global $static_querydb_count;
if(isset($static_querydb_count)) $static_querydb_count = $value;
else $GLOBALS['global_mysql_querydb_counter'] = $value;
}
function set_hostname($value) {
$this->dbconfig['hostname'] = $value;
}
function set_username($value) {
$this->dbconfig['username'] = $value;
}
function set_password($value) {
$this->dbconfig['password'] = $value;
}
function set_database($value) {
$this->dbconfig['database'] = $value;
}
function set_collation_connection($value) {
$this->dbconfig['collation_connection'] = $value;
}
function set_character_set($value) {
$this->dbconfig['character_set'] = $value;
}
function get_configdb() {
return $this->dbconfig;
}
}
class mysql_operator extends mysql_config {
var $link = NULL;
var $result = NULL;
var $mysql_version = NULL;
var $string_error = array();
function set_configdb(&$array_dbconfig) {
$this->set_hostname($array_dbconfig['hostname']);
$this->set_username($array_dbconfig['username']);
$this->set_password($array_dbconfig['password']);
$this->set_database($array_dbconfig['database']);
$this->set_collation_connection(
$array_dbconfig['collation_connection']
);
$this->set_character_set($array_dbconfig['character_set']);
}
function set_error_msg($string){
array_push($this->string_error, $string);
}
function get_error_msg(){
while (count($this->string_error) - 1)
$string_output = '<b>MySQL Error : </b> '.
array_pop($this->string_error).'<br />';
return $string_output;
}
function mysql_operator(&$dbconfig) {
if(is_array($dbconfig)) $this->set_configdb($dbconfig);
else $this->set_configdb($dbconfig->get_configdb());
}
function set_mysql_version($value) {
$this->mysql_version = $value;
}
function get_mysql_version() {
return $this->mysql_version;
}
function opendb($newlink = FALSE) {
$this->link = mysql_connect($this->dbconfig['hostname'],
$this->dbconfig['username'],
$this->dbconfig['password'],
$newlink);
if (!$this->link)
$this->set_error_msg(
mysql_errno($this->link).':'.
mysql_error($this->link)
);
$this->set_mysql_version(mysql_get_server_info());
if (!mysql_select_db ($this->dbconfig['database']))
$this->set_error_msg(
mysql_errno($this->link).':'.
mysql_error($this->link)
);
if(!empty($this->dbconfig['character_set'])) {
$this->querydb("SET CHARACTER SET ".
$this->dbconfig['character_set'].";"
);
$this->querydb_counter_decrement();
}
if(!empty($this->dbconfig['collation_connection'])) {
$this->querydb("SET collation_connection = ".
$this->dbconfig['collation_connection'].";");
$this->querydb_counter_decrement();
}
}
function closedb() {
if (!mysql_close($this->link))
$this->set_error_msg(mysql_errno($this->link).':'.
mysql_error($this->link)
);
}
function querydb($string_query) {
$start_time = array_sum(explode(chr(32), microtime()));
$this->result = mysql_query ($string_query);
$end_time = array_sum(explode(chr(32), microtime()));
if (!$this->result)
$this->set_error_msg(
mysql_errno($this->link).':'.mysql_error($this->link)
);
$this->set_querydb_timer(
$this->get_querydb_timer() + ($end_time - $start_time)
);
$this->querydb_counter_increment();
}
function list_fields($table) {
$fields = mysql_list_fields(
$this->dbconfig['database'], $table, $this->link
);
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++)
$array_fields_in_table[$i] = mysql_field_name($fields, $i);
return $array_fields_in_table;
}
function querydb_counter_increment() {
$this->set_querydb_counter($this->get_querydb_counter()+1);
}
function querydb_counter_decrement() {
$this->set_querydb_counter($this->get_querydb_counter()-1);
}
function querydb_transac_begin() {
if($this->get_mysql_version() > 3)
$this->querydb("START TRANSACTION;");
}
function querydb_transac_commit() {
if($this->get_mysql_version() > 3) $this->querydb("COMMIT;");
}
function querydb_transac_rollback() {
if($this->get_mysql_version() > 3) $this->querydb("ROLLBACK;");
}
function querydb_transac_set_autocommit_to_zero() {
if($this->get_mysql_version() > 3)
$this->querydb("SET AUTOCOMMIT=0;");
}
function querydb_transac_check_for_rollback_or_commit() {
if(!($this->get_resultdb())$this->querydb_transac_rollback();
else $this->querydb_transac_commit();
}
function num_rows_in_table($table, $condition = NULL) {
$num_rows = new mysql_operator($this->get_configdb());
$num_rows->opendb();
$num_rows->querydb("SELECT COUNT(*) FROM $table $condition;");
$num_rows->closedb();
return mysql_result($num_rows->get_resultdb(), 0);
}
function has_data_in_table($table, $field, $value) {
$value = trim($value);
if(empty($field) or empty($value)) $sql_condtion = NULL;
else $sql_condtion = "WHERE ".$field."='".$value."'";
if($this->num_rows_in_table($table, $sql_condtion) > 0)return TRUE;
else return FALSE;
}
function reset_querydb() {
$this->set_resultdb(NULL);
}
function set_resultdb($resource) {
$this->result = $resource;
}
function get_resultdb() {
return $this->result;
}
function get_resultdb_fetch_data() {
return mysql_fetch_array($this->get_resultdb());
}
function get_resultdb_num_rows() {
return mysql_num_rows($this->get_resultdb());
}
function get_resultdb_num_fields() {
return mysql_num_fields($this->get_resultdb());
}
function get_last_insert_id(){
return mysql_insert_id();
}
function get_resultdb_atrow($row = 0) {
return mysql_result($this->get_resultdb(), $row);
}
}
?>
Code (PHP)
<?php
$obj_dbconfig = new mysql_config();
$obj_dbconfig->set_hostname("localhost");
$obj_dbconfig->set_username("root");
$obj_dbconfig->set_password("");
$obj_dbconfig->set_database("test");
$obj_dbconfig->set_character_set("utf8");
$obj_dbconfig->set_collation_connection("utf8_general_ci");
$obj_db = new mysql_operator($obj_dbconfig->get_configdb());
$obj_db->opendb();
$obj_db->querydb("SELECT * FROM table;");
$obj_db->closedb();
echo $obj_db->get_resultdb_num_rows();
while ($row = $obj_db->get_resultdb_fetch_data()) {
echo $row[0];
?>
ช่วยดูหน่อยทำไมมัน เออเลอร์
|
|
|
|
|
Date :
2009-06-05 18:44:53 |
By :
antz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function querydb_transac_check_for_rollback_or_commit() {
if(!($this->get_resultdb())$this->querydb_transac_rollback();
else $this->querydb_transac_commit();
}
ตรงนี้ มี ( เกินมาคับ ตรง !(
และบรรทัดสุดท้ายตรง while ไม่มี } คับ
ว่าแต่ทำไมไม่ตั้งกระทู้ใหม่คับ
|
|
|
|
|
Date :
2009-06-05 19:14:28 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่ครับ PHP ง่ายสุด แล้วในช่วงนี้ แต่ในอนาคตก็อาจจะมีง่ายกว่านี้อีก แต่ในความง่ายมากมายของ PHP ย่อมมีจุดอ่อนมากมายเช่นกัน จากการเขียนโปรแกรมลักษณะโปรแกรมย่อยๆ เล็กๆ ให้คอยช่วยกันทำงาน แต่ PHP ก็พลักตัวเองมาให้อยู่ในสงคราม OOP มีความสามารถเทียบเท่ากับ java C# C++ แต่ ข้อจำกัดก็ยังทำให้ PHP ยังอยู่ในสนามการพัฒนาเว็บเพียงอย่างเดียว
เมื่อมีข้อด้อย ก็คงต้องหาวิธีมาแก้ไขเพิ่มเติม การจะทำให้ PHP ของเราทั้งหลาย มีกำลังสูงสุดเทียบเท่า .NET หรือ J2EE เป็นไปได้ยากพอสมควร แต่ผลจะเป็นอย่างไรก็ขึ้นอยู่กับปัจจัยหลายด้าน เช่น
- SERVER WEB Engine ว่าเป็นแบบไหน
- การกำหนด php.ini ให้รัดกุมแค่ไหน
- การป้องการการจู่โจมจาก SQL Injection
- การปรับปรุงการพัฒนาโปรแกรมให้กระชับรัดกุมมากขึ้นเรื่อยๆ คือ เขียนน้อย แต่ทำงานได้มาก หรือมีแล้วไม่ต้องเขียนใหม่ แต่ให้หยิบมาใช้
เมื่อมีด้านมืดก็ต้องมีด้านสว่าง ค่อยลองหาดูนะครับ เพราะโดยส่วนตัวผมคิดว่า php คงเป็นอะไรที่ประเทศไทยยังต้องการไปอีกนานเลย หละครับ แต่ก็ศึกษาพวกนี้เพิ่มบ้างก็ดีนะครับ Zend Framework ,Zoop Framework,PHPCake เพราะสิ่งเหล่านี้จะช่วยตอกย้ำคำที่ว่า [font=Verdana]"อยากทำเว็บ จะใช้ภาษาอะไรดี????"[/font] จะได้ตอบได้เต็มปากไปเลยครับว่า ต้อง PHP ซิครับ
แต่ความสามารถด้านอื่นๆ คงจะมีตามมาให้เราได้เห็นกันอีกเรื่อยๆ เช่น โปรแกรม server โดย php (เขียนเองครับ สนุกดี client เป็น c/c++) ,สร้างภาพ 3d โดย PHP ไปดูผลงานทีเว็บของคนที่ลองพัฒนาก็สวยดีครับ เป็นต้น
|
|
|
|
|
Date :
2009-06-08 11:35:04 |
By :
Ravatna |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่านแล้วมันส์ครับ
ชอบคำพูดของคุณ nut_t02 นะ
ที่เปรียบเทียบเป็นสมการอ่ะครับ เหอๆ เอิ๊กๆ
|
|
|
|
|
Date :
2009-06-08 17:28:03 |
By :
panyapol |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สมัยเรียน เขียนโปรแกรมด้วย VB Pascal แต่พอจบให้ทำโปรเจ็คจบ
ก็หันมาจับ PHP ดีกว่า เพราะเขียนง่ายกว่า และที่สำคัญ ฟรีตลอดงานเลยอ่ะ
ภายหลังจากศึกษา php แล้วก็หันมาศึกษา Smarty Templage Engine
และ ADODB ไปด้วยเลย
และต่อมาระยะหลัง ก็หันมาศึกษา Framework (Mojavi Framework คนไทยไม่นิยมใชักัน)
และ Ajax ด้วย มันเป็นพัฒนาการที่ดีจริง ๆ เลย
|
|
|
|
|
Date :
2009-06-09 09:35:55 |
By :
sirikulo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ชอบจังเลยมีแต่คนเอาสิ่งใหม่ๆ มายัดแทนขี้เลื่อยในหัวผม
|
|
|
|
|
Date :
2009-06-09 09:40:39 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thanks
|
|
|
|
|
Date :
2011-04-14 03:55:21 |
By :
EXPERT-PRO |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|