วันอังคารที่ 16 ธันวาคม พ.ศ. 2557

คำสั่ง SQL

1.  SQL BETWEEN 

เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการเลือกเงื่อนไขที่อยู่ระหว่างค่าเริ่มต้นและค่าสิ้นสุด
Database :  MySQL, Microsoft Access,SQL Server,Oracle
Syntax : SELECT Column1,Column2,Column3,... FROM [Table-Name] WHERE [Field] BETWEEN [Value-Start] AND [Value-End]

2. SQL LEFT JOIN 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยเงื่อนไขการ LEFT JOIN จะทำการเลือกข้อมูลหลักและข้อมูลเชื่อมโยงที่สัมพันธ์กัน โดยจะทำการอิงจาก Table แรกสำคัญก่อน ถ้าไม่มีข้อมูลใน Table แรก ข้อมูล Table สองจะไม่ถูกสนใจและจะสนใจข้อมูลแค่ Table แรกเท่านั้น
Database : MySQL,Microsoft  Access,SQL Server,Oracle
Syntax
SELECT [Table-Name1].Column1, [Table-Name2].Column1,... FROM [Table-Name1]
LEFT JOIN [Table-Name2] ON [Table-Name1].Column = [Table-Name2].Column

3. SQL DISTINCT
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการเลือกข้อมูลที่ซ้ำกันมาเพียงแค่ Record เดียว 
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT DISTINCT Column1,Column2,Column3,... FROM [Table-Name]

4. SQL NOT LIKE 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการค้นหาข้อความที่ระบุภายในฟิวด์ที่กำหนด และไม่แสดง Record ที่ค้นพบ ซึ่งทำหน้าที่ตรงข้ามกับ LIKE 
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax SELECT Column1,Column2,Column3,... FROM [Table-Name] WHERE [Filed] NOT LIKE '%Value%'

5. SQL MAX 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยหาค่าสูงสุดในฟิวด์
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT MAX(Column/Field) AS [New-Field] FROM [Table-Name]

6. SQL SELECT
เป็นคำสั่งที่ใช้สำหรับการเรียกดูข้อมูลในตาราง (Table) คำสั่ง SQL SELECT สามารถเรียกได้ทั้งตาราง หรือว่า สามารถระบุฟิวด์ที่ต้องการเรียกดูข้อมูลได้
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : 
SELECT Column1, Column2, Column3,... FROM [Table-Name]

7. SQL LIKE 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการค้นหาข้อความที่ระบุภายในฟิวด์ที่กำหนด
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT Column1,Column2,Column3,... FROM [Table-Name] WHERE [Filed] LIKE '%Value%'

8. SQL RENAME DATABASE
เป็นคำสั่งที่ใช้ในการเปลี่ยนชื่อฐานข้อมูล
Database : MySQL 
Syntax : RENAME DATABASE `old-database` `new-database`

9. SQL GETDATE()
เป็นคำสั่งที่ใช้ในอ่านวันที่ปันจุบันของ SQL Server Database 
Database : SQL Server
Syntax : SELECT GETDATE()
             :SELECT * FROM table WHERE Column = GETDATE()
              INSERT INTO table (Column1,Column2) VALUES ('Value1',GETDATE())

10. SQL ORDER BY 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยจัดเรียงข้อมูลตามต้องการ
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax : SELECT Culumn1,Culumn2,Culumn3,... FROM [Table-Name] ORDER BY [Field] [ASC/DESC],[Field] [ASC/DESC],...
ASC = น้อยไปหามาก
DESC = มากไปหาน้อย

วันอังคารที่ 2 ธันวาคม พ.ศ. 2557

ข้อสอบO-Net วิชาคอมพิวเตอร์


ข้อสอบO-Net 

1.ข้อใดไม่ใช่ระบบปฏิบัติการที่นำมาใช้บนอุปกรณ์พกพา
ประเภท  Smartphone.

1.  Ubuntu       2.  Iphone  os
3.  Android      4.  Symbian


2.ไฟล์ประเภทใดในข้อต่อไปนี้เก็บข้อมูลในลักษณะตัวอักษร.
1.  ไฟล์เพลง  MP 3 (mp 3)
2.  ไฟล์รูปประเภท  JPEG (jpeg)
3.  ไฟล์แสดงผลหน้าเว็บ (html)
4.  ไฟล์วีดีโอประเภท  Movie (movie)


3.ลิขสิทธิ์โปรแกรมประเภทรหัสเปิด(Open Source)อนุญาต
ให้ผู้ใช้ทำอะไรได้บ้าง.
ก.  นำโปรแกรมมาใช้งานโดยไม่ต้องเสียค่าลิขสิทธิ์
ข.  ทดลองใช้โปรแกรมก่อนถ้าพอใจจึงจ่ายค่าลิขสิทธิ์
ค.  แก้ไขปรับปรุงโปรแกรมเองได้
  1.  ข้อ  ก กับ  ข้อ  ค      2.  ข้อ  ข  กับ  ข้อ  ค
  3.  ข้อ  ข  อย่างเดียว     4.  ข้อ  ก  อย่างเดียว

4.ระบบกระดานสนทนาหรือเว็บบอร์ดแห่งหนึ่งมีความต้องการดังนี้
ก.  ต้องให้ผู้ใช้สามารถตั้งกระทู้โต้ตอบกันได้โดยผู้ใช้
ต้องแสดงตัวตน(ล็อกอิน)เพื่อเข้าระบบก่อน
ข.  ผู้ใช้สามารถตั้งกระทู้หรือเข้าไปตอบกระทู้ที่ตั้งไว้แล้วได้
ค.  ระบบจะบันทึกชื่อผู้ตั้งและผู้ตอบไว้ด้วย
ในการออกแบบฐานข้อมูลดังกล่าวข้อใดกล่าวได้ถูกต้อง.
    1.  ต้องสร้างตารางผู้ใช้ ตารางกระทู้และตารางคำตอบ
    2.  ไม่ต้องสร้างตารางผู้ใช้เนื่องจากสามารถบันทึกชื่อ
    ผู้ใช้ในตารางกระทู้และตารางคำตอบได้เลย
    3.  ต้องสร้างตารางผู้ใช้และตารางกระทู้ส่วนคำตอบจะอยู่
   ในตารางกระทู้อยู่แล้ว
    4.  ไม่ต้องสร้างตารางกระทู้เพราะสามารถบันทึกกระทู้ที่ผู้ใช้
ตั้งในตารางผู้ใช้ได้เลย


5.อุปกรณ์ข้อใดคือหน่วยประเมินผลกลางของคอมพิวเตอร์.
เฉลย  CPU
6.ข้อใดเป้นการปฏิบัติที่ถูกต้องตามหลักวิชาการเมื่อค้นคว้า
หาข้อมูลจากอินเทอร์เนตมาทำรายงาน.
1.  คัดลอกเนื้อหาจากเว็บไซต์
2.  ใช้เนื้อหาจากกระดานสนทนา(Web board)มาใส่ในรายงาน
3.  นำรูปภาพจากเว็บไซต์มาใส่ในรายงาน
4.  อ้างอิงชื่อผู้เขียนบทความ


6.ห้องสมุดแห่งหนึ่งต้องการพัมนาระบบยืมหนังสือโดยสามารถ
บันทึกข้อมูลการยืมหนังสือลงบนบัตรอิเลคโทรนิกส์โดยไม่ต้อง
เขียนด้วยมือระบบนี้ควรใช้เทคโนโลยีในข้อใด.
1.  Smart  Card          2.  Fingerprint
3.  Barcode                 4.  WiFi


7.ผู้ประกอบอาชีพเป็นผู้พัฒนาเว็บไซต์ต้องเชี่ยวชาญความรู้
ด้านใดบ้างจากตัวเลือกต่อไปนี้.
ก.  ฮาร์แวร์คอมพิวเตอร์       ข.  ระบบปฎิบัติการ
ค.  เว็บเซิร์ฟเวอร์                   ง.  HTML
จ.  ระบบฐานข้อมูล                ฉ.  ภาษาจาวา(Java)
1.  ข้อ  ก และ ค                    2.  ข้อ  ข  และ  จ
3.  ข้อ  ค  และ  ง                   4.  ข้อ  ค  และ  ฉ


8.ข้อใดเป็นเทคโนโลยีการเชื่อมต่อข้อมูลไร้สายทั้งหมด.
1.  Wi-Fi  ,  IP                2.  Wi-Fi  ,Bluetooth
3.  3G  ADSL                4.  3G    Ethernet

9.ข้อใดไม่ใช่ข้อเสียของการละเมิดลิขสิทธิ์ซอฟต์แวร์.
1.  การทำผิดกฏหมายลิขสิทธิ์มีความผิดทางอาญา
2.  เป็นช่องทางหนึ่งในการระบาดของไวรัสคอมพิวเตอร์
3.  ผู้ใช้จะไม่ได้รับการบริการจากผู้พัมนาถ้าหากมีปัญหาการใช้งาน
4.  ทำให้ผู้พัมนาซอฟแวร์ไม่มีรายได้เพื่อประกอบการและพัฒนาต่อไปได้

10.ข้อใดต่อไปนี้ถูกต้องที่สุด.
1.  การบันทึกข้อมูลลงแผ่นดีวีดีใช้เทคโนโลยีแบบแม่เหล็ก
2.  หมายเลขไอพีเป็นหมายเลขที่ใช้กำกับ  Network Interce Card
3.  หน่วยความจำสำรองเป็นหน่วยความจำที่มีคุณลักษณะแบบ Volntile
4.  รหัส ACIIและEBCIDICเป็นการวางรหัสตัวอักษรที่ใช้ขนาด  8 บิด



  ที่มาhttps://krupaga.wordpress.com/category/%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%97%E0%B8%94%E0%B8%AA%E0%B8%AD%E0%B8%9A-o-net-%E0%B8%A1-6-%E0%B8%84%E0%B8%AD%E0%B8%A1%E0%B8%9E%E0%B8%B4%E0%B8%A7%E0%B9%80%E0%B8%95%E0%B8%AD%E0%B8%A3%E0%B9%8C/

วันอังคารที่ 25 พฤศจิกายน พ.ศ. 2557

ฟังก์ชันPHP

                         ฟังก์ชันใน PHP



ฟังก์ชันในโปรแกรมส่วนใหญ่ได้รับการเรียกคำสั่งเพื่อทำงานอย่างเดียว สิ่งนี้ทำให้คำสั่งอ่านได้ง่ายและยอมให้ใช้คำสั่งใหม่แต่ละครั้งเมื่อต้องการทำงานเดียวกัน
ฟังก์ชันเป็นโมดูลเก็บคำสั่งที่กำหนดการเรียกอินเตอร์เฟซ ทำงานเดียวกัน และตัวเลือกส่งออกค่าจากการเรียกฟังก์ชัน คำสั่งต่อไปเป็นการเรียกฟังก์ชันอย่างง่าย
my_function ();
คำสั่งเรียกฟังก์ชันชื่อ my_function ที่ไม่ต้องการพารามิเตอร์ และไม่สนใจค่าที่อาจจะส่งออกโดยฟังก์ชันนี้
ฟังก์ชันจำนวนมากได้รับการเรียกด้วยวิธีนี้ เช่น ฟังก์ชัน phpinfo () สำหรับแสดงเวอร์ชันติดตั้งของ PHP สารสนเทศเกี่ยวกับ PHP การตั้งค่าแม่ข่ายเว็บ ค่าต่างๆ ของ PHP และตัวแปร ฟังก์ชันนี้ไม่ใช้พารามิเตอร์และโดยทั่วไปไม่สนใจค่าส่งออก ดังนั้นการเรียก phpinfo () จะประกอบขึ้นดังนี้
phpinfo ();


การกำหนดฟังก์ชันและการเรียกฟังก์ชัน

การประกาศฟังก์ชันเริ่มต้นด้วยคีย์เวิร์ด function กำหนดชื่อฟังก์ชัน พารามิเตอร์ที่ต้องการ และเก็บคำสั่งที่จะประมวลผลแต่ละครั้งเมื่อเรียกฟังก์ชันนี้
<?php
function function_name(parameter1,…)
{
ชุดคำสั่ง …
}
?>
ชุดคำสั่งต้องเริ่มต้นและสิ้นสุดในวงเล็บปีกกา ({ }) ตัวอย่างฟังก์ชัน my_function
<?php
function my_function()
{
$mystring =<<<BODYSTRING
my function ได้รับการเรียก
BODYSTRING;
echo $mystring;
}
?>
การประกาศฟังก์ชันนี้ เริ่มต้นด้วย function ดังนั้นผู้อ่านและตัวกระจาย PHP ทราบว่าต่อไปเป็นฟังก์ชันกำหนดเอง ชื่อฟังก์ชันคือ my_function การเรียกฟังก์ชันนี้ใช้ประโยคคำสั่งนี้
my_function ();
การเรียกฟังก์ชันนี้จะให้ผลลัพธ์เป็นข้อความ "my function ได้รับการเรียก " บน browser


การตั้งชื่อฟังก์ชัน

สิ่งสำคัญมากในการพิจารณาเมื่อตั้งชื่อฟังก์ชันคือชื่อต้องสั้นแต่มีความหมาย ถ้าฟังก์ชันสร้างส่วนตัวของเพจควรตั้งชื่อเป็น pageheader () หรือ page_header ()
ข้อจำกัดในการตั้งชื่อคือ
  • ฟังก์ชันไม่สามารถมีชื่อเดียวกับฟังก์ชันที่มีอยู่
  • ชื่อฟังก์ชันสามารถมีได้เพียงตัวอักษรตัวเลข และ underscore
  • ชื่อฟังก์ชันไม่สามารถเริ่มต้นด้วยตัวเลข
หลายภาษายอมให้ใช้ชื่อฟังก์ชันได้อีก ส่วนการทำงานนี้เรียกว่า function overload อย่างไรก็ตาม PHP ไม่สนับสนุน function overload ดังนั้นฟังก์ชันไม่สามารถมีชื่อเดียวกันกับฟังก์ชันภายใน หรือฟังก์ชันกำหนดเองที่มีอยู่
หมายเหตุ ถึงแม้ว่าทุกสคริปต์ PHP รู้จักฟังก์ชันภายในทั้งหมด ฟังก์ชันกำหนดเองอยู่เฉพาะในสคริปต์ที่ประกาศสิ่งนี้หมายความว่า ชื่อฟังก์ชันสามารถใช้ในคนละไฟล์แต่อาจจะไปสู่ความสับสน และควรหลีกเลียง
ชื่อฟังก์ชันต่อไปนี้ถูกต้อง
name ()
name2 ()
name_three ()
_namefour ()
ชื่อไม่ถูกต้อง
5name ()
Name-six ()
fopen ()
การเรียกฟังก์ชันไม่มีผลจากชนิดตัวพิมพ์ ดังนั้นการเรียก function_name (), Function_Name() หรือ FUNCTION_NAME() สามารถทำได้และมีผลลัพธ์เหมือนกัน แต่แบบแผนการกำหนดชื่อฟังก์ชันใน PHP ให้ใช้ตัวพิมพ์เล็ก
ชื่อฟังก์ชันแตกต่างจากชื่อตัวแปร โดยชื่อตัวแปรเป็นชนิดตัวพิมพ์มีผล ดังนั้น $Name และ $name เป็น 2 ตัวแปร แต่ Name () และ name () เป็นฟังก์ชันเดียวกัน


การหยุดประมวลผลภายในฟังก์ชัน

คีย์เวิร์ด return หยุดการประมวลผลฟังก์ชัน ฟังก์ชันสิ้นสุดได้เพราะประโยคคำสั่งทั้งหมดได้รับการประมวลผล หรือ ใช้คีย์เวิร์ด return การประมวลผลกลับไปยังประโยคคำสั่งต่อจากการเรียกฟังก์ชัน
<?php
function division($x, $y)
{
if ($y == 0 || !isset($y))
{

echo " ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า" ;
return;
}
$result = $x / $y;
echo $result;
}
?>
ถ้าประโยคคำสั่ง return ได้รับการประมวลผล บรรทัดคำสั่งต่อไปในฟังก์ชันจะถูกข้ามไป และกลับไปยังผู้เรียกฟังก์ชันนี้ ในฟังก์ชันนี้ ถ้า y เป็น 0 จะหยุดการประมวลผล ถ้า y ไม่เท่ากับ 0 จะคำนวณผลหาร
สมมติป้อนค่าเป็น
x = 4, y = 0
x = 4
x = 4, y = 2
ผลลัพธ์ของคำสั่ง คือ
x = 4, y = 0 ผลลัพธ์ ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = ผลลัพธ์ ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = 2 ผลลัพธ์ 2


การเรียกฟังก์ชัน

เมื่อฟังก์ชันได้รับการประกาศหรือสร้างขึ้นแล้ว การเรียกฟังก์ชันสามารถเรียกมาจากที่ใดๆ ภายในสคริปต์ หรือ จากไฟล์ที่มีการรวมด้วยประโยคคำสั่ง include() หรือ require()
ตัวอย่าง ฟังก์ชัน show_message() เก็บอยู่ในไฟล์ fn_ 03 _keeper.php ส่วนผู้เรียกอยู่ในสคริปต์ fn_ 03 _caller.php
<?php
include("fn_ 03 _keeper.php");
show_message();
?>


พารามิเตอร์

ตามปกติฟังก์ชันส่วนใหญ่ต้องการรับสารสนเทศจากผู้เรียกสำหรับการประมวลผล โดยทั่วไปเรียกว่า พารามิเตอร์


ไวยากรณ์พื้นฐาน

การกำหนดฟังก์ให้รับพารามิเตอร์ส่งผ่านโดยการวางข้อมูล ชื่อตัวแปรที่เก็บข้อมูลภายในวงเล็บหลังชื่อฟังก์ชัน การเรียกฟังก์ชันที่ประกอบด้วยพารามิเตอร์เขียนดังนี้
<?php
function show_parameter($param1, $param2, $param3)
{
echo <<<PARAM
รายการพารามิเตอร์ <br/>
param1: $param1 <br/>
param2: $param2 <br/>
param3: $param3 <br/>
PARAM;
}
?>
พารามิเตอร์ที่ส่งไปยังฟังก์ชันแยกกันเครื่องหมายจุลภาคภายในวงเล็บ โดยสามารถส่งเป็นนิพจน์สำหรับแต่ละพารามิเตอร์ด้วย ตัวแปร ค่าคงที่ ผลลัพธ์จากการคำนวณ รวมถึงการเรียกฟังก์ชัน
scope ของพารามิเตอร์จำกัดภายในฟังก์ชัน ถ้าชื่อตัวแปรเหมือนกับตัวแปรใน scope ระดับอื่น พารามิเตอร์นี้ "ระบุ" เป็นตัวแปรภายในที่ไม่มีผลกับตัวแปรภายนอกฟังก์ชัน


การส่งผ่านโดยค่า(By Value)

ตามปกติการส่งผ่านพารามิเตอร์ไปยังฟังก์ชันเป็นการส่งผ่านค่า การเปลี่ยนแปลงจะจำกัดภายในเฉพาะภายในฟังก์ชัน
ตัวอย่างฟังก์ชัน new_value () ที่ยอมให้เพิ่มค่า อาจจะเขียนคำสั่งดังนี้
<?php
function new_value($value, $increment= 1)
{
$value = $value + $increment;
}
$value = 10 ;
new_value($value);
echo "$value<br/>\n";
?>
คำสั่งนี้ใช้ไม่ได้ ผลลัพธ์จะเป็น "10" ค่าใหม่ของ $value ไม่มีการเปลี่ยนแปลง
สิ่งนี้เป็นเพราะกฎ scope คำสั่งนี้สร้างตัวแปรเรียกว่า $value เป็น 10 เมื่อเรียกฟังก์ชัน new_value () ตัวแปร $value ในฟังก์ชันได้รับการสร้างเมื่อเรียกฟังก์ชัน ค่า 1 ได้รับการเพิ่มให้กับตัวแปร ดังนั้นค่าของ $value คือ 11 ภายในฟังก์ชัน จนกระทั่งสิ้นสุดฟังก์ชัน แล้วกลับไปยังคำสั่งที่เรียกภายในคำสั่งนี้ ตัวแปร $value เป็นอีกตัวแปร global scope และไม่มีการเปลี่ยนแปลง


การส่งผ่านโดยการอ้างอิง (By Reference)

ตามตัวอย่างฟังก์ชัน new_value ถ้าต้องการให้ฟังก์ชันเปลี่ยนแปลงค่าได้ มีวิธีหนึ่งในการแก้ไขคือ ประกาศ $value ในฟังก์ชันเป็น global แต่หมายความว่าในการใช้ฟังก์ชันนี้ ตัวแปรที่ต้องการเพิ่มค่าต้องตั้งชื่อเป็น $value แต่มีวิธีดีกว่าคือ ใช้การส่งผ่านโดยการอ้างอิง
การอ้างอิงไปตัวแปรต้นทางแทนที่มีค่าของตัวเอง การปรับปรุงไปยังการอ้างอิงจะมีผลกับตัวแปรต้นทางด้วย
การระบุพารามิเตอร์ที่ใช้การส่งผ่านโดยการอ้างอิงให้วาง ampersand (&) หน้าชื่อพารามิเตอร์ในข้อกำหนดฟังก์ชัน
ตัวอย่าง new_value () ได้รับปรับปรุงให้มี 1 พารามิเตอร์ส่งผ่านโดยการอ้างอิงและทำงานได้อย่างถูกต้อง
<?php
function new_value(&$value, $increment=1)
{
$value = $value + $increment;
}
?>
คำสั่งทดสอบฟังก์ชัน ให้พิมพ์ 10 ก่อนการเรียก increment () และ 11 ภายหลัง
ในการส่งค่าโดยการอ้างอิงต้องส่งเป็นตัวแปรไม่สามารถกำหนดค่าคงที่โดยตรง


จำนวนตัวแปรของพารามิเตอร์

การส่งผ่านพารามิเตอร์ไปยังฟังก์ชันนั้น การควบคุมของ PHP ได้กำหนดฟังก์ชันจำนวนหนึ่งให้ยอมรับจำนวนตัวแปรของพารามิเตอร์ ได้แก่ func_num_args, func_get_arg และ func_get_args
func_num_args() บอกจำนวนพารามิเตอร์ไปยังฟังก์ชันที่เรียก func_get_arg() แสดงค่าของพารามิเตอร์ตามดัชนี และ func_get_args() ส่งออก array ของพารามิเตอร์
<?php
function show_pass_value()
{
$idx = count(func_get_args());
echo " จำนวนพารามิเตอร์ $idx <br/>\n";

if ($idx > 0)
    echo ">> ใช้ฟังก์ชัน func_get_arg<br/>\n";

for ($i = 0 ; $i < $idx; $i++)
{

echo " พารามิเตอร์ที่ $i ค่า: ". func_get_arg($i)."<br/>\n";
}
if ($idx > 0)
    echo ">> ใช้ฟังก์ชัน func_get_args<br/>\n";

$params = func_get_args();
foreach ($params as $index => $val)
{

echo " พารามิเตอร์ที่ $index ค่า: $val<br/>\n";
}
echo " *********<br/>\n";
}
$x = 4 ;
show_pass_value("one", "two", 3 , $x, " ห้า" , " หก") ;
show_pass_value();
?>

ผลลัพธ์
จำนวนพารามิเตอร์ 6
>> ใช้ฟังก์ชัน func_get_arg
พารามิเตอร์ที่ 0 ค่า: one
พารามิเตอร์ที่ 1 ค่า: two
พารามิเตอร์ที่ 2 ค่า: 3
พารามิเตอร์ที่ 3 ค่า: 4
พารามิเตอร์ที่ 4 ค่า: ห้า
พารามิเตอร์ที่ 5 ค่า: หก
>> ใช้ฟังก์ชัน func_get_args
พารามิเตอร์ที่ 0 ค่า: one
พารามิเตอร์ที่ 1 ค่า: two
พารามิเตอร์ที่ 2 ค่า: 3
พารามิเตอร์ที่ 3 ค่า: 4
พารามิเตอร์ที่ 4 ค่า: ห้า
พารามิเตอร์ที่ 5 ค่า: หก
*********
จำนวนพารามิเตอร์ 0
*********


Scope

เมื่อต้องการใช้ตัวแปรภายในไฟล์ที่รวม ต้องมีการประกาศตัวแปรเหล่านั้นก่อนประโยคคำสั่ง require () หรือ include () แต่เมื่อใช้ฟังก์ชันจะเป็นการส่งผ่านตัวแปรเชิงประจักษ์เหล่านั้นไปยังฟังก์ชัน บางส่วนเป็นเพราะไม่มีกลไกส่งผ่านตัวแปรเชิงประจักษ์ไปยังไฟล์ที่รวม และบางส่วนเป็นเพราะ scope ของตัวแปรของฟังก์ชันแตกต่างกัน
การควบคุม scope ของตัวแปรเป็นการทำให้ตัวแปรมองเห็นได้ ใน PHP มีกฎตั้งค่า scope ดังนี้
  • การประกาศตัวแปรภายในฟังก์ชันอยู่ใน scope จากประโยคคำสั่งซึ่งตัวแปรให้รับการประกาศภายในวงเล็บปีกกา สิ่งนี้เรียกว่า function scope ตัวแปรเรียกว่า local variable
  • การประกาศตัวแปรภายนอกฟังก์ชันอยู่ใน scope จากประโยคคำสั่งซึ่งตัวแปรได้รับการประกาศที่สิ้นสุดแต่ไม่ใช้ภายในฟังก์ชัน สิ่งนี้เรียกว่า global scope ตัวแปรเรียกว่า global variable
  • การใช้ประโยคคำสั่ง require () และ include () ไม่มีผลกับ scope ถ้าประโยคคำสั่งได้รับการใช้ภายในฟังก์ชัน ประยุกต์ด้วย function scope ถ้าไม่ได้อยู่ภายในฟังก์ชัน ประยุกต์ด้วย global scope
  • คีย์เวิร์ด global สามารถระบุได้เองเพื่อกำหนดหรือใช้ตัวแปรภายในฟังก์ชันให้มี scope เป็น global
  • ตัวแปร สามารถลบโดยการเรียก unset ($variable_name) และตัวแปรที่ unset จะไม่มี scope
  • ตัวแปรระดับ superglobal สามารถเข้าถึงได้ทุกส่วนในสคริปต์


ตัวแปรระดับฟังก์ชัน

ตัวแปรระดับฟังก์ชันหรือ local variable เป็นการประกาศเพื่อใช้เฉพาะภายในฟังก์ชัน ไม่สามารถเรียกจากภายนอกฟังก์ชันได้
<?php
$newline = <<<NLSTRING
<br/>\n
NLSTRING;
$var_global = 10 ;
function show_value()
{
global $newline;
$var_local= 75 ;
echo "\$var_local 1: $var_local";
echo $newline;
}
show_value();
echo "\$var_global : $var_global";
echo $newline;
echo "\$var_local 2: $var_local";
echo $newline;
?>
ผลลัพธ์
$var_global 1 :
$var_local 1: 75
$var_global 2: 10
$var_local 2:
ตามตัวอย่างนี้ ตัวแปรระดับฟังก์ชัน $var_local ไม่สามารถแสดงผลในการพิมพ์ภายนอกฟังก์ชัน show_value() และ $var_global ที่เป็นตัวแปรระดับ global ไม่สามารถแสดงผลภายใน show_value() เพราะมี scope ต่างกัน


ตัวแปรระดับ global

ถ้าต้องการนำตัวแปรระดับ global มาใช้ภายในฟังก์ชันต้องประกาศด้วยคีย์เวิร์ด global ก่อนประโยคคำสั่งที่ใช้ตัวแปรนั้น ตัวอย่าง ฟังก์ชัน show_value() ใช้ $newline จากภายนอกฟังก์ชัน
global $newline;


ตัวแปรสถิตย์

การประกาศตัวแปรสถิตย์ใช้ คีย์เวิร์ด static เมื่อมีการเรียกใช้ฟังก์ชัน โปรแกรมจะกำหนดค่าตัวแปรตามที่ระบุเพียงครั้งเดียว ถ้าเรียกซ้ำอย่างต่อเนื่องค่านี้จะเปลี่ยนแปลงตามการคำนวณ
<?php
function increment()
{
static $increase = 5 ;
$increase++;
echo $increase."<br/>\n";
}
$end = 5 ;
for ($i = 1 ; $i < $end; $i++)
    increment();
?>
ผลลัพธ์ 
6
7
8
9
ค่าของตัวแปรสถิตย์ได้รับการตั้งทุกครั้งเมื่อเรียกใช้ในครั้งต่อไป


การส่งออกค่าจากฟังก์ชัน

การส่งค่าออกจากฟังก์ชันใช้คีย์เวิร์ด return เช่นเดียวกับการออกจากฟังก์ชันได้ ถ้าไม่มีการระบุส่งออกฟังก์ชันจะส่งค่า NULL
ตัวอย่าง ฟังก์ชัน get_larger () สาธิตการส่งออกค่า
<?
function get_larger($x=NULL, $y=NULL)
{
if (!isset($x) || !isset($y))
    return " ไม่มีการส่งค่า" ;
if ($x > $y)
    return $x;
else if ($x < $y)
    return $y;
else
    return " ค่าเท่ากัน" ;
}
$sends = array();
$sends[0] = array('x' =>5);
$sends[1] = array('x' =>9, 'y'=>3);
$sends[2] = array('x' =>5, 'y'=>8);
$sends[3] = array('x' =>4, 'y'=>4);
foreach ($sends as $send)
{
echo "x = ".$send['x']." y = ".$send['y']." : ค่า - > "
.get_larger($send['x'], $send['y']);
echo "<br/>\n";
}
?>
ผลลัพธ์ 
x = 5 y = : ค่า - > ไม่มีการส่งค่า
x = 9 y = 3 : ค่า - > 9
x = 5 y = 8 : ค่า - > 8
x = 4 y = 4 : ค่า - > ค่าเท่ากัน
ฟังก์ชันที่ทำงานอาจเดียว แต่ไม่จำเป็นต้องส่งออกค่า มักจะส่งออก TRUE หรือ FALSE เพื่อระบุความสำเร็จหรือล้มเหลว ค่า TRUE หรือ FALSE สามารถได้รับการแสดงแทนด้วย 1 หรือ 0


Recursion

recursion ได้รับการสนับสนุนใน PHP ฟังก์ชันชนิดนี้เป็นการเรียกตัวเองและเป็นประโยชน์กับการบังคับโครงสร้างข้อมูลไดนามิคส์ เช่น รายการเชื่อมโยงและโครงสร้างต้นไม้ (tree)
โปรแกรมประยุกต์เว็บจำนวนไม่มากต้องการโครงสร้างข้อมูลซับซ้อนมากและจำกัดการใช้ เนื่องจาก recursion ช้ากว่าและใช้หน่วยความจำมากกว่าการทำงานวนรอบ ดังนั้นควรเลือกการทำงานแบบวนรอบปกติ ถ้าเป็นไปได้
ตัวอย่างการประยุกต์แบบย้อนกลับตัวอักษร
<?php
function word_reverse_r($str)
{
if (strlen($str)>0)
    word_reverse_r(substr($str, 1));

echo substr($str, 0, 1);
return;
}
function word_reverse_i($str)
{
for ($i=1; $i<=strlen($str); $i++)
{

echo substr($str, -$i, 1);
}
return;
}
?>
รายการคำสั่งของ 2 ฟังก์ชันนี้จะพิมพ์ข้อความย้อนกลับ ฟังก์ชัน word_reverse_r เป็น recursion ฟังก์ชัน word_reverse_i เป็นการวนรอบ
ฟังก์ชัน word_reverse_r ใช้ข้อความเป็นพารามิเตอร์ เมื่อมีการเรียกฟังก์ชันนี้ จะเกิดการเรียกตัวเองแต่ละครั้งส่งผ่านตัวอักษรที่ 2 ไปถึงตัวอักษรสุดท้าย
การเรียกฟังก์ชันแต่ละครั้งจะทำสำเนาใหม่ของคำสั่งในหน่วยความจำของแม่ข่าย แต่ด้วยพารามิเตอร์ต่างกัน ดังนั้นจึงเหมือนกับการเรียกคนละฟังก์ชัน

วันอาทิตย์ที่ 14 กันยายน พ.ศ. 2557

อุปกรณ์เครือข่าย

                        
                                                              อุปกรณ์เครือข่าย

  • เซิร์ฟเวอร์ (Server) หรือเรียกอีกอย่างหนึ่งว่า เครื่องแม่ข่าย เป็นเครื่องคอมพิวเตอร์หลักในเครือข่าย ที่ทำหน้าที่จัดเก็บและให้บริการไฟล์ข้อมูลและทรัพยากรอื่นๆ กับคอมพิวเตอร์เครื่องอื่น ๆ ใน เครือข่าย โดยปกติคอมพิวเตอร์ที่นำมาใช้เป็นเซิร์ฟเวอร์มักจะเป็นเครื่องที่มีสมรรถนะสูง และมีฮาร์ดดิสก์ความจำสูงกว่าคอมพิวเตอร์เครื่องอื่น ๆ ในเครือข่าย

  • ไคลเอนต์ (Client) หรือเรียกอีกอย่างหนึ่งว่า เครื่องลูกข่าย เป็นคอมพิวเตอร์ในเครือข่ายที่ร้องขอ บริการและเข้าถึงไฟล์ข้อมูลที่จัดเก็บในเซิร์ฟเวอร์ หรือพูดง่าย ๆ ก็คือ ไคลเอนต์ เป็นคอมพิวเตอร์ ของผู้ใช้แต่ละคนในระบบเครือข่าย
  • ฮับ (HUB) หรือ เรียก รีพีตเตอร์ (Repeater) คืออุปกรณ์ที่ใช้เชื่อมต่อกลุ่มคอมพิวเตอร์ ฮับ มีหน้าที่รับส่งเฟรมข้อมูลทุกเฟรมที่ได้รับจากพอร์ตใดพอร์ตหนึ่ง ไปยังพอร์ตที่เหลือ คอมพิวเตอร์ที่เชื่อมต่อเข้ากับฮับจะแชร์แบนด์วิธหรืออัตราข้อมูลของเครือข่าย เพราะฉะนั้นถ้ามีคอมพิวเตอร์เชื่อมต่อมากจะทำให้อัตราการส่งข้อมูลลดลง

  • เนทเวิร์ค สวิตช์ (Switch) คืออุปกรณ์เครือข่ายที่ทำหน้าที่ในเลเยอร์ที่ 2 และทำหน้าที่ส่งข้อมูลที่ได้รับมาจากพอร์ตหนึ่งไปยังพอร์ตเฉพาะที่เป็นปลายทางเท่านั้น และทำให้คอมพิวเตอร์ที่เชื่อมต่อกับพอร์ตที่เหลือส่งข้อมูลถึงกันในเวลาเดียวกัน ดังนั้น อัตราการรับส่งข้อมูลหรือแบนด์วิธจึงไม่ขึ้นอยู่กับคอมพิวเตอร์ ปัจจุบันนิยมเชื่อมต่อแบบนี้มากกว่าฮับเพราะลดปัญหาการชนกันของข้อมูล

  • เราต์เตอร์ (Router)เป็นอุปรณ์ที่ทำหน้าที่ในเลเยอร์ที่ 3 เราท์เตอร์จะอ่านที่อยู่ (Address) ของสถานีปลายทางที่ส่วนหัว (Header) ข้อแพ็กเก็ตข้อมูล เพื่อที่จะกำหนดและส่งแพ็กเก็ตต่อไป เราท์เตอร์จะมีตัวจัดเส้นทางในแพ็กเก็ต เรียกว่า เราติ้งเทเบิ้ล (Routing Table) หรือตารางจัดเส้นทางนอกจากนี้ยังส่งข้อมูลไปยังเครือข่ายที่ให้โพรโทคอลต่างกันได้ เช่น IP (Internet Protocol) , IPX (Internet Package Exchange) และ AppleTalk นอกจากนี้ยังเชื่อมต่อกับเครือข่ายอื่นได้ เช่น เครือข่ายอินเทอร์เน็ต

  • บริดจ์ (Bridge) เป็นอุปกรณ์ที่มักจะใช้ในการเชื่อมต่อวงแลน (LAN Segments) เข้าด้วยกัน ทำให้สามารถขยายขอบเขตของ LAN ออกไปได้เรื่อยๆ โดยที่ประสิทธิภาพรวมของระบบ ไม่ลดลงมากนัก เนื่องจากการติดต่อของเครื่องที่อยู่ในเซกเมนต์เดียวกันจะไม่ถูกส่งผ่าน ไปรบกวนการจราจรของเซกเมนต์อื่น และเนื่องจากบริดจ์เป็นอุปกรณ์ที่ทำงานอยู่ในระดับ Data Link Layer จึงทำให้สามารถใช้ในการเชื่อมต่อเครือข่ายที่แตกต่างกันในระดับ Physical และ Data Link ได้ เช่น ระหว่าง Eternet กับ Token Ring เป็นต้น
บริดจ์ มักจะถูกใช้ในการเชื่อมเครือข่ายย่อย ๆ ในองค์กรเข้าด้วยกันเป็นเครือข่ายใหญ่ เพียงเครือข่ายเดียว เพื่อให้เครือข่ายย่อยๆ เหล่านั้นสามารถติดต่อกับเครือข่ายย่อยอื่นๆ ได้

  • เกตเวย์ (Gateway) เป็นอุปกรณ์ฮาร์ดแวร์ที่เชื่อมต่อเครือข่ายต่างประเภทเข้าด้วยกัน เช่น การใช้เกตเวย์ในการเชื่อมต่อเครือข่าย ที่เป็นคอมพิวเตอร์ประเภทพีซี (PC) เข้ากับคอมพิวเตอร์ประเภทแมคอินทอช (MAC) เป็นต้น


ชนิดของเครือข่าย


                                        ชนิดของเครือข่าย

ระบบเครือข่ายจะถูกแบ่งออกตามขนาดของเครือข่าย ซึ่งปัจจุบันเครือข่ายที่รู้จักกันดีมีอยู่ 6 แบบ ได้แก่
  • เครือข่ายภายใน หรือ แลน (Local Area Network: LAN) เป็นเครือข่ายที่ใช้ในการ เชื่อมโยงกันในพื้นที่ใกล้เคียงกัน เช่นอยู่ในห้อง หรือภายในอาคารเดียวกัน
  • เครือข่ายวงกว้าง หรือ แวน (Wide Area Network: WAN) เป็นเครือข่ายที่ใช้ในการ เชื่อมโยงกัน ในระยะทางที่ห่างไกล อาจจะเป็น กิโลเมตร หรือ หลาย ๆ กิโลเมตร
  • เครือข่ายงานบริเวณนครหลวง หรือ แมน (Metropolitan area network : MAN)
  • เครือข่ายของการติดต่อระหว่างไมโครคอนโทรลเลอร์ หรือ แคน (Controller area network) : CAN) เป็นเครือข่ายที่ใช้ติดต่อกันระหว่างไมโครคอนโทรลเลอร์ (Micro Controller unit: MCU)
  • เครือข่ายส่วนบุคคล หรือ แพน (Personal area network) : PAN) เป็นเครือข่ายระหว่างอุปกรณ์เคลื่อนที่ส่วนบุคคล เช่น โน้ตบุ๊ก มือถือ อาจมีสายหรือไร้สายก็ได้
  • เครือข่ายข้อมูล หรือ แซน (Storage area network) : SAN) เป็นเครือข่าย (หรือเครือข่ายย่อย) ความเร็วสูงวัตถุประสงค์เฉพาะที่เชื่อมต่อภายในกับอุปกรณ์จัดเก็บข้อมูลชนิดต่างกันด้วยแม่ข่ายข้อมูลสัมพันธ์กันบนคัวแทนเครือข่ายขนาดใหญ่ของผู้ใช้    
...................................................................................

ระบบเชื่อมโยง


                                                   ระบบการเชื่อมโยง

สื่อกลางการสื่อสารที่ใช้ในการเชื่อมโยงอุปกรณ์เพื่อสร้างเป็นเครือข่ายคอมพิวเตอร์ประกอบด้วยสายเคเบิลไฟฟ้า (HomePNA, สายไฟฟ้าสื่อสาร, G.hn), ใยแก้วนำแสง และคลื่นวิทยุ (เครือข่ายไร้สาย) ในโมเดล OSI สื่อเหล่านี้จะถูกกำหนดให้อยู่ในเลเยอร์ที่ 1 และที่ 2 หรือชั้นกายภาพและชั้นเชื่อมโยงข้อมูล
ครอบครัวของสื่อการสื่อสารที่ถูกพัฒนาอย่างกว้างขวางและถูกนำมาใช้ในเทคโนโลยีเครือข่ายท้องถิ่น (LAN) เรียกว่า อีเธอร์เน็ต มาตรฐานของสื่อกลางและของโพรโทคอลที่ช่วยในการสื่อสารระหว่างอุปกรณ์ในเครือข่ายอีเธอร์เน็ตถูกกำหนดโดยมาตรฐาน IEEE 802. อีเธอร์เน็ตในโลกไซเบอร์มีทั้งเทคโนโลยีของ LAN แบบใช้สายและแบบไร้สาย อุปกรณ์ของ LAN แบบใช้สายจะส่งสัญญาณผ่านสื่อกลางที่เป็นสายเคเบิล อุปกรณ์ LAN ไร้สายใช้คลื่นวิทยุหรือสัญญาณอินฟราเรดเป็นสื่อกลางในการส่งผ่านสํญญาณ

เทคโนโลยีแบบใช้สาย

เทคโนโลยีแบบใช้สายต่อไปนี้เรียงลำดับตามความเร็วจากช้าไปเร็วอย่างหยาบๆ
รูปแสดงสาย UTP
สายคู่บิดเป็นสื่อที่ใช้กันอย่างแพร่หลายที่สุดสำหรับการสื่อสารโทรคมนาคมทั้งหมด สายคู่บิดประกอบด้วยกลุ่มของสายทองแดงหุ้มฉนวนที่มีการบิดเป็นคู่ๆ สายโทรศัพท์ธรรมดาที่ใช้ภายในบ้านทั่วไปประกอบด้วยสายทองแดงหุ้มฉนวนเพียงสองสายบิดเป็นคู่ สายเคเบิลเครือข่ายคอมพิวเตอร์ (แบบใช้สายอีเธอร์เน็ตตามที่กำหนดโดยมาตรฐาน IEEE 802.3) จะเป็นสายคู่บิดจำนวน 4 คู่สายทองแดงที่สามารถใช้สำหรับการส่งทั้งเสียงและข้อมูล การใช้สายไฟสองเส้นบิดเป็นเกลียวจะช่วยลด crosstalk และการเหนี่ยวนำแม่เหล็กไฟฟ้าระหว่างสายภายในเคเบิลชุดเดียวกัน ความเร็วในการส่งอยู่ในช่วง 2 ล้านบิตต่อวินาทีถึง 10 พันล้านบิตต่อวินาที สายคู่บิดมาในสองรูปแบบคือคู่บิดไม่มีต้วนำป้องกัน(การรบกวนจากการเหนี่ยวนำแม่เหล็กไฟฟ้าภายนอก) (unshielded twisted pair หรือ UTP) และคู่บิดมีตัวนำป้องกัน (shielded twisted pair หรือ STP) แต่ละรูปแบบออกแบบมาหลายอัตราความเร็วในการใช้งานในสถานการณ์ต่างกัน
สายโคแอคเชียลถูกใช้อย่างแพร่หลายสำหรับระบบเคเบิลทีวี, ในอาคารสำนักงานและสถานที่ทำงานอื่นๆ ในเครือข่ายท้องถิ่น สายโคแอคประกอบด้วยลวดทองแดงหรืออะลูมิเนียมเส้นเดี่ยวที่ล้อมรอบด้วยชั้นฉนวน (โดยปกติจะเป็นวัสดุที่มีความยืดหยุ่นกับไดอิเล็กทริกคงที่สูง) และล้อมรอบทั้งหมดด้วยตัวนำอีกชั้นหนึ่งเพื่อป้องกันการเหนี่ยวนำแม่เหล็กไฟฟ้าจากภายนอก ฉนวนไดอิเล็กทริกจะช่วยลดสัญญาณรบกวนและความผิดเพี้ยน ความเร็วในการส่งข้อมูลอยู่ในช่วง 200 ล้านบิตต่อวินาทีจนถึงมากกว่า 500 ล้านบิตต่อวินาที
รูปแสดงสายโคแอคเชียล
'ITU-T G.hn เป็นเทคโนโลยีที่ใช้สายไฟที่มีอยู่ในบ้าน (สายโคแอค, สายโทรศัพท์และสายไฟฟ้า) เพื่อสร้างเครือข่ายท้องถิ่นความเร็วสูง (ถึง 1 Gb/s)
ใยแก้วนำแสง เป็นแก้วไฟเบอร์ จะใช้พัลส์ของแสงในการส่งข้อมูล ข้อดีบางประการของเส้นใยแสงที่เหนือกว่าสายโลหะก็คือมีการสูญเสียในการส่งน้อยและมีอิสรภาพจากคลื่นแม่เหล็กไฟฟ้าและมีความเร็วในการส่งรวดเร็วมากถึงล้านล้านบิตต่อวินาที เราสามารถใช้ความยาวคลื่นที่แตกต่างของแสงที่จะเพิ่มจำนวนของข้อความที่ถูกส่งผ่านสายเคเบิลใยแก้วนำแสงพร้อมกันในเส้นเดียวกัน

เทคโนโลยีไร้สาย

'ไมโครเวฟบนผิวโลก - การสื่อสารไมโครเวฟบนผิวโลกจะใช้เครื่องส่งและเครื่องรับสัญญาณจากสถานีบนผิวโลกที่มีลักษณะคล้ายจานดาวเทียม ไมโครเวฟภาคพื้นดินอยู่ในช่วงกิกะเฮิรตซ์ที่ต่ำ ซึ่งจำกัดการสื่อสารทั้งหมดด้วยเส้นสายตาเท่านั้น สถานีทวนสัญญาณมีระยะห่างประมาณ 48 กิโลเมตร (30 ไมล์)
ดาวเทียมสื่อสาร - การสื่อสารดาวเทียมผ่านทางคลื่นวิทยุไมโครเวฟที่ไม่ได้เบี่ยงเบนโดยชั้นบรรยากาศของโลก ดาวเทียมจะถูกส่งไปประจำการในอวกาศ ที่มักจะอยู่ในวงโคจร geosynchronous ที่ 35,400 กิโลเมตร (22,000 ไมล์) เหนือเส้นศูนย์สูตร ระบบการโคจรของโลกนี้มีความสามารถในการรับและถ่ายทอดสัญญาณเสียง, ข้อมูลและทีวี
ระบบเซลลูลาร์และ PCS ใช้เทคโนโลยีการสื่อสารวิทยุหลายเทคโนโลยี ระบบแบ่งภูมิภาคที่ครอบคลุมออกเป็นพื้นที่ทางภูมิศาสตร์หลายพื้นที่ แต่ละพื้นที่มีเครื่องส่งหรืออุปกรณ์เสาอากาศถ่ายทอดสัญญาณวิทยุพลังงานต่ำเพื่อถ่ายทอดสัญญาณเรียกจากพื้นที่หนึ่งไปยังอีกพื้นที่หนึ่งข้างหน้า
เทคโนโลยีวิทยุและการแพร่กระจายสเปกตรัม - เครือข่ายท้องถิ่นไร้สายจะใช้เทคโนโลยีวิทยุความถี่สูงคล้ายกับโทรศัพท์มือถือดิจิทัลและเทคโนโลยีวิทยุความถี่ต่ำ. LAN ไร้สายใช้เทคโนโลยีการแพร่กระจายคลื่นความถี่เพื่อการสื่อสารระหว่างอุปกรณ์หลายชนิดในพื้นที่จำกัด. IEEE 802.11 กำหนดคุณสมบัติทั่วไปของเทคโนโลยีคลื่นวิทยุไร้สายมาตรฐานเปิดที่รู้จักกันคือ Wifi
การสื่อสารอินฟราเรด สามารถส่งสัญญาณระยะทางสั้นๆมักไม่เกิน 10 เมตร ในหลายกรณีส่วนใหญ่ การส่งแสงจะใช้แบบเส้นสายตา ซึ่งจำกัดตำแหน่งการติดตั้งของอุปกรณ์การสื่อสาร
เครือข่ายทั่วโลก (global area network หรือ GAN) เป็นเครือข่ายที่ใช้สำหรับการสนับสนุนการใช้งานมือถือข้ามหลายๆ LAN ไร้สาย หรือในพื้นที่ที่ดาวเทียมครอบคลุมถึง ฯลฯ ความท้าทายที่สำคัญในการสื่อสารเคลื่อนที่คือการส่งมอบการสื่อสารของผู้ใช้จากพื้นที่หนึ่งไปอีกพื้นที่หนึ่ง ใน IEEE 802 การส่งมอบนี้เกี่ยวข้องกับความต่อเนื่องของ LAN ไร้สายบนผิวโลก .

เทคโนโลยีที่แปลกใหม่

มีความพยายามต่างๆที่ขนส่งข้อมูลผ่านสื่อที่แปลกใหม่ ได้แก่
  • IP over Avian Carriers เป็นอารมณ์ขันของ April's fool เป็น RFC 1149 มันถูกนำมาใช้ในชีวิตจริงในปี 2001.
  • ขยายอินเทอร์เน็ตเพื่อมิติอวกาศผ่านทางคลื่นวิทยุ.
ทั้งสองกรณีมีการหน่วงเวลาสูงอันเนื่องมาจากสัญญาณต้องเดินทางไปกลับ ซึ่งจะทำให้การสื่อสารสองทางล่าช้ามาก แต่ก็ไม่ได้ขัดขวางการส่งข้อมูลจำนวนมาก