جاري التحميل...

دليل سريع PHP

دليل سريع PHP هو مرجع متكامل يركز على مفاهيم بي إتش بي الأساسية والمتقدمة لتسهيل تطوير البرمجيات وحل المشكلات بكفاءة. يُعد هذا الدليل أداة مهمة للمطورين لفهم تركيب لغة بي إتش بي، الهياكل البيانية، الخوارزميات، ومبادئ البرمجة الكائنية (OOP). يساعد دليل سريع PHP على كتابة أكواد نظيفة وفعالة، وتقليل الأخطاء الشائعة مثل تسرب الذاكرة أو سوء إدارة الأخطاء، مع تعزيز الأداء والأمان في التطبيقات.
يمكن استخدام دليل سريع PHP في جميع مراحل تطوير بي إتش بي، سواء في بناء التطبيقات البسيطة أو النظم المعقدة، كما يوفر إشارات عملية لتطبيق أفضل ممارسات التصميم والبرمجة. سيتعلم القارئ كيفية التعامل مع التركيبات الأساسية للغة، فهم أنواع البيانات والمصفوفات، إنشاء خوارزميات فعالة، وتطبيق مبادئ OOP مثل الوراثة، التجريد، والتعددية.
في سياق هندسة البرمجيات، يربط دليل سريع PHP بين أساسيات اللغة والتطبيق العملي، مما يتيح للمطورين بناء أنظمة قابلة للتوسع والصيانة. يغطي هذا الدليل المشكلات الشائعة، نصائح التحسين، وأساليب تحسين الأداء، مع أمثلة عملية قابلة للتنفيذ فوراً. في النهاية، يزود المطورين بالأدوات اللازمة لتعزيز جودة البرمجيات وتسهيل صيانة المشاريع الكبيرة والمعقدة في بيئة PHP.

مثال أساسي

php
PHP Code
<?php
// إنشاء مصفوفة بيانات بسيطة وتمريرها عبر دالة لمعالجة المعلومات
$data = [
'name' => 'محمد',
'age' => 28,
'role' => 'مطور'
];

function displayUserInfo(array $user): void {
foreach ($user as $key => $value) {
echo ucfirst($key) . ": " . $value . PHP_EOL;
}
}

// استدعاء الدالة مع المصفوفة
displayUserInfo($data);
?>

في المثال أعلاه، قمنا أولاً بإنشاء مصفوفة $data تحتوي على معلومات المستخدم. استخدام المصفوفة هنا يوضح كيفية التعامل مع هياكل البيانات في بي إتش بي بشكل مباشر وعملي. دالة displayUserInfo تستقبل مصفوفة كمعامل (type hinting array) وهذا يضمن أن الدالة تعمل فقط مع نوع البيانات الصحيح، مما يقلل الأخطاء ويعزز أمان الكود.
داخل الدالة، تم استخدام حلقة foreach لاستعراض العناصر، مع ucfirst لتغيير الحرف الأول من كل مفتاح إلى حرف كبير، مما يحسن من قابلية القراءة عند عرض البيانات. استخدام PHP_EOL يضمن أن كل معلومة تظهر في سطر جديد، وهو نهج أفضل من كتابة "\n" مباشرة لتوافقية أكبر مع بيئات مختلفة.
هذا المثال يوضح كيفية اتباع أفضل ممارسات بي إتش بي: استخدام type hints، الكتابة النظيفة، التعامل مع البيانات بأمان، وتجنب الأخطاء الشائعة مثل معالجة أنواع غير متوقعة. كما يمكن توسيع هذا المثال ليشمل مصفوفات أكثر تعقيداً أو دمجها مع قواعد بيانات، مما يربط بين مفاهيم دليل سريع PHP والتطبيق العملي في المشاريع.

مثال عملي

php
PHP Code
<?php
// تعريف فئة مستخدم لتوضيح مبادئ OOP
class User {
private string $name;
private int $age;
private string $role;

public function __construct(string $name, int $age, string $role) {
$this->name = $name;
$this->age = $age;
$this->role = $role;
}

public function getInfo(): string {
return "الاسم: {$this->name}, العمر: {$this->age}, الدور: {$this->role}";
}
}

// إنشاء كائن مستخدم واستخدامه
$user = new User('ليلى', 32, 'مهندسة برمجيات');
echo $user->getInfo();
?>

Advanced بي إتش بي Implementation

php
PHP Code
<?php
// دمج مبادئ OOP والخوارزميات مع إدارة الأخطاء
class Calculator {
public function divide(float $a, float $b): float {
if ($b === 0.0) {
throw new InvalidArgumentException("القسمة على صفر غير مسموح بها.");
}
return $a / $b;
}
}

try {
$calc = new Calculator();
echo $calc->divide(10, 2);
echo PHP_EOL;
echo $calc->divide(5, 0); // سيؤدي إلى استثناء
} catch (InvalidArgumentException $e) {
echo "خطأ: " . $e->getMessage();
}
?>

أفضل الممارسات في بي إتش بي تتضمن كتابة كود واضح ومنظم، استخدام هياكل البيانات المناسبة مثل المصفوفات والقوائم، وتطبيق مبادئ OOP بكفاءة. من الأخطاء الشائعة تجنب التحقق من صحة البيانات أو التعامل مع الأخطاء بشكل غير صحيح، مما يؤدي إلى تسرب الذاكرة أو انهيار النظام.
ينبغي للمطورين استخدام Type Hints، إدارة الاستثناءات، والتحقق من المدخلات لتجنب الأخطاء الحرجة. تحسين الأداء يمكن تحقيقه من خلال اختيار الخوارزميات المناسبة وتجنب التكرار غير الضروري في الحلقات. من حيث الأمان، يجب التعامل مع المدخلات بحذر، استخدام طرق التحقق من SQL وXSS، والالتزام بأفضل الممارسات الخاصة بالجلسات والكوكيز.
في بيئة المشاريع الكبيرة، دمج دليل سريع PHP مع استراتيجيات التصميم الجيدة يعزز الصيانة والتوسع، ويقلل من المشكلات المستقبلية، مع ضمان كود قوي، آمن، وفعال.

📊 المرجع الشامل

بي إتش بي Element/Method Description Syntax Example Notes
echo طباعة النصوص على الشاشة echo "text"; echo "مرحبا"; سريع وفعال للطباعة
print طباعة نصوص مع إرجاع قيمة print "text"; print "مرحبا"; يُعيد 1 دائماً
array إنشاء مصفوفة array(1,2,3); $arr = array(1,2,3); يمكن استخدام []
count عدد عناصر المصفوفة count($arr); count($arr); مفيد في الحلقات
foreach التكرار على المصفوفة foreach($arr as $val) foreach($arr as $val) echo $val; آمن وسهل
isset التحقق من وجود متغير isset($var) isset($name); يعيد true/false
empty التحقق من كون المتغير فارغ empty($var) empty($name); يشمل null و"" و0
array_push إضافة عناصر للمصفوفة array_push($arr, $val); array_push($arr, 4); يضيف في نهاية المصفوفة
array_pop إزالة آخر عنصر array_pop($arr); array_pop($arr); يعيد العنصر المحذوف
explode تقسيم نص إلى مصفوفة explode(" ", $str); explode(" ", "A B C"); مفيد للتعامل مع النصوص
implode دمج مصفوفة إلى نص implode("-", $arr); implode("-", [1,2]); يجعل المصفوفة نص
strlen طول النص strlen($str); strlen("مرحبا"); يشمل الحروف والأرقام
strpos موقع حرف في النص strpos($str,"x"); strpos("abc","b"); يعيد موقع أول ظهور
substr اقتطاع جزء من النص substr($str,0,5); substr("abcdef",0,3); يعطي سلسلة فرعية
trim إزالة الفراغات من البداية والنهاية trim($str); trim(" abc "); يساعد في تنظيف المدخلات
array_merge دمج مصفوفات array_merge($a,$b); array_merge([1],[2]); يوحد المصفوفات
sort ترتيب مصفوفة sort($arr); sort([3,1]); ترتيب تصاعدي
rsort ترتيب تنازلي rsort($arr); rsort([3,1]); يساعد في التحليل
in_array التحقق من وجود عنصر in_array(2,$arr); in_array(2,[1,2]); يعيد true/false
array_keys مفاتيح المصفوفة array_keys($arr); array_keys(["a"=>1]); للتكرار على المفاتيح
array_values قيم المصفوفة array_values($arr); array_values(["a"=>1]); للتكرار على القيم
function تعريف دالة function name(){} function test(){} يمكن استخدام type hints
return إرجاع قيمة من دالة return $val; return 5; ينهي تنفيذ الدالة
class تعريف فئة class Name{} class User{} لبناء OOP
public وصول عام للخاصية أو الدالة public $var; public $name; يمكن الوصول من الخارج
private وصول خاص private $var; private $age; يقتصر على الفئة نفسها
protected وصول محمي protected $var; protected $role; يمكن الوصول من الوراثة
__construct دالة المنشئ function __construct(){} function __construct($a){} تهيئة الكائن
__destruct دالة الهدم function __destruct(){} function __destruct(){} تحرير الموارد
try/catch معالجة الأخطاء try{}catch(Exception $e){} try{…}catch(Exception $e){} للتعامل مع الاستثناءات
throw إطلاق استثناء throw new Exception("msg"); throw new Exception("خطأ"); جزء من معالجة الأخطاء
require إدراج ملف إلزامي require "file.php"; require "config.php"; يقاطع التنفيذ إذا فشل
include إدراج ملف include "file.php"; include "header.php"; يكمل التنفيذ عند الفشل
require_once إدراج ملف مرة واحدة require_once "file.php"; require_once "config.php"; منع التكرار
include_once إدراج مرة واحدة include_once "file.php"; include_once "header.php"; منع التكرار
define تعريف ثابت define("NAME","value"); define("PI",3.14); ثابت لا يتغير
const تعريف ثابت في OOP const NAME="value"; const MAX=100; يستخدم داخل الفئات
date التعامل مع التاريخ date("Y-m-d"); date("Y-m-d"); يمكن استخدام time() أيضاً
time الوقت الحالي بالثواني time(); time(); لحساب الفترات الزمنية
strtotime تحويل نص إلى وقت strtotime("next Monday"); strtotime("2025-10-01"); مفيد للجداول
json_encode تحويل مصفوفة إلى JSON json_encode($arr); json_encode(["a"=>1]); لواجهات API
json_decode تحويل JSON لمصفوفة json_decode($str,true); json_decode('{"a":1}',true); لتحليل البيانات
file_get_contents قراءة محتوى ملف file_get_contents("file.txt"); file_get_contents("data.txt"); مباشر وبسيط
file_put_contents كتابة إلى ملف file_put_contents("file.txt",$data); file_put_contents("data.txt","abc"); يكتب كل البيانات
strlen حساب طول النصوص strlen($str); strlen("abc"); يشمل المسافات
strpos بحث عن نص strpos($str,"b"); strpos("abc","b"); يعيد الموقع أو false
substr اقتطاع نص substr($str,0,3); substr("abcde",0,2); يعطي جزء من النص
str_replace استبدال نصوص str_replace("a","b",$str); str_replace("a","b","abc"); مفيد للتحويل
explode تقسيم نصوص explode(" ",$str); explode(" ","a b c"); تحويل النص لمصفوفة
implode دمج مصفوفة implode(",",$arr); implode(",",[1,2]); تحويل مصفوفة لنص
preg_match مطابقة Regex preg_match("/a/",$str); preg_match("/b/","abc"); للنصوص المعقدة
preg_replace استبدال Regex preg_replace("/a/","x",$str); preg_replace("/a/","x","abc"); مرن وقوي
ceil التقريب للأعلى ceil(2.3); ceil(2.3); رقم صحيح أعلى
floor التقريب للأسفل floor(2.7); floor(2.7); رقم صحيح أدنى
round التقريب round(2.5); round(2.5); يمكن تحديد الدقة
rand توليد أرقام عشوائية rand(1,10); rand(1,10); للاختبارات أو الألعاب
mt_rand أرقام عشوائية أسرع mt_rand(1,10); mt_rand(1,10); أداء أفضل من rand
min max إيجاد الحد الأدنى والأقصى min($arr); max($arr); min([1,2]); max([1,2]);
array_filter فلترة مصفوفة array_filter($arr,function($v){return $v>2;}); array_filter([1,2,3], fn($v)=>$v>1); تنقية البيانات
array_map تطبيق دالة على مصفوفة array_map(fn($v)=>$v*2,$arr); array_map(fn($v)=>$v*2,[1,2]); تعديل سريع للبيانات
array_reduce تجميع عناصر مصفوفة array_reduce($arr, fn($carry,$v)=>$carry+$v); array_reduce([1,2,3], fn($c,$v)=>$c+$v); لحساب مجموع أو قيمة
strtolower تحويل نصوص إلى صغيرة strtolower($str); strtolower("ABC"); تحسين التوحيد
strtoupper تحويل نصوص إلى كبيرة strtoupper($str); strtoupper("abc"); تحسين التوحيد
empty التحقق من الفارغ empty($var); empty(""); يشمل 0 و null
isset التحقق من الوجود isset($var); isset($name); للتأكد من متغير موجود
die إيقاف البرنامج مع رسالة die("msg"); die("خطأ"); مثل exit
exit إيقاف البرنامج exit("msg"); exit("انهاء"); ينهي التنفيذ
htmlspecialchars تحويل الأحرف الخاصة htmlspecialchars("<a>"); htmlspecialchars("<b>"); للحماية من XSS
nl2br تحويل الأسطر nl2br("a\nb"); nl2br("line1\nline2"); يعطي <br> تلقائياً
trim إزالة المسافات trim(" abc "); trim(" abc "); تنظيف المدخلات
ltrim إزالة المسافات من البداية ltrim(" abc"); ltrim(" abc"); تنظيف النص
rtrim إزالة المسافات من النهاية rtrim("abc "); rtrim("abc "); تنظيف النص
array_key_exists التحقق من مفتاح array_key_exists("a",$arr); array_key_exists("a",["a"=>1]); للتحقق من المفاتيح
method_exists التحقق من دالة method_exists($obj,"func"); method_exists($user,"getInfo"); للتحقق قبل الاستدعاء
class_exists التحقق من فئة class_exists("User"); class_exists("User"); لتجنب الأخطاء
interface_exists التحقق من واجهة interface_exists("IUser"); interface_exists("IUser"); للبرمجة المتقدمة
trait_exists التحقق من trait trait_exists("T"); trait_exists("T"); للإعادة استخدام الأكواد
spl_autoload_register تحميل تلقائي للفئات spl_autoload_register(fn($c)=>include "$c.php"); spl_autoload_register(fn($c)=>include "$c.php"); تسهيل إدارة الملفات
ob_start بدء التخزين المؤقت للمخرجات ob_start(); ob_start(); لتحسين الأداء
ob_get_clean إرجاع محتوى المخزن المؤقت ob_get_clean(); ob_get_clean(); لإدارة المخرجات
session_start بدء جلسة session_start(); session_start(); لتخزين البيانات بين الصفحات
session_destroy إنهاء جلسة session_destroy(); session_destroy(); لحذف بيانات الجلسة
setcookie إنشاء كوكيز setcookie("name","value"); setcookie("user","mamad"); إدارة حالة المستخدم
header إرسال رؤوس HTTP header("Location: url"); header("Location: /home"); إعادة توجيه
filter_var فلترة بيانات filter_var($email,FILTER_VALIDATE_EMAIL); filter_var("[[email protected]](mailto:[email protected])",FILTER_VALIDATE_EMAIL); للتحقق من المدخلات
md5 تشفير md5($str); md5("123"); للتجزئة الأساسية
sha1 تشفير sha1($str); sha1("123"); للتجزئة
password_hash تشفير كلمات السر password_hash($pass,PASSWORD_DEFAULT); password_hash("123",PASSWORD_DEFAULT); لأمان أفضل
password_verify التحقق من كلمة السر password_verify($input,$hash); password_verify("123",$hash); للتحقق من كلمة السر
filter_input فلترة مدخلات filter_input(INPUT_POST,"name",FILTER_SANITIZE_STRING); filter_input(INPUT_POST,"name",FILTER_SANITIZE_STRING); تنقية البيانات
parse_url تحليل URL parse_url($url); parse_url("[https://a.com"); للتعامل](https://a.com%22%29;
http_build_query إنشاء استعلام URL http_build_query($arr); http_build_query(["a"=>1]); تحويل مصفوفة لاستعلام
microtime وقت دقيق microtime(true); microtime(true); لقياس الأداء
ini_set تغيير إعدادات PHP ini_set("display_errors","1"); ini_set("memory_limit","256M"); تعديل مؤقت للإعدادات
error_reporting إعدادات عرض الأخطاء error_reporting(E_ALL); error_reporting(E_ALL); لتطوير آمن
gettype نوع المتغير gettype($var); gettype(5); لتصحيح الأخطاء
var_dump عرض محتوى المتغير var_dump($var); var_dump($data); لتصحيح الأخطاء
print_r عرض المصفوفات والكائنات print_r($arr); print_r($data); مفيد للتصحيح
uniqid معرف فريد uniqid(); uniqid(); للتوليد السريع
mt_srand تهيئة مولد الأرقام mt_srand(time()); mt_srand(time()); لزيادة العشوائية
get_class اسم الفئة get_class($obj); get_class($user); مفيد للتحقق من النوع
spl_object_hash معرف الكائن spl_object_hash($obj); spl_object_hash($user); لتتبع الكائنات
interface تعريف واجهة interface Name{} interface IUser{} لتوحيد التصاميم
trait إعادة استخدام كود trait Name{} trait Loggable{} لتقليل التكرار
abstract فئة مجردة abstract class Name{} abstract class Base{} لإنشاء أساس للفئات
final منع الوراثة final class Name{} final class Singleton{} لحماية التصميم
clone نسخ الكائن $copy = clone $obj; $copy = clone $user; لإنشاء نسخة مستقلة
global الوصول لمتغير عالمي global $var; global $config; استخدام محدود
static خصائص أو دوال ثابتة static $var; static $count; للتعريف داخل الفئة
self الوصول للخصائص الثابتة self::$var; self::$count; مفيد داخل الفئة
parent الوصول للأصل parent::method(); parent::getInfo(); للوراثة
namespace تعريف مساحة اسم namespace MyApp; namespace App\Models; لتجنب التعارض
use استخدام مساحة اسم use MyApp\User; use App\Models\User; لتسهيل الاستخدام
final function منع تعديل الدالة final function method(){} final function run(){} لحماية التنفيذ
abstract function دالة مجردة abstract function method(); abstract function run(); تُعرف في الفئة الأساسية
const class ثوابت داخل الفئة const NAME="value"; const VERSION="1.0"; ثابت داخل OOP
yield توليد قيم عند الطلب yield $value; yield 1; لتقليل استهلاك الذاكرة
generator توليد تسلسلات function gen() {yield 1;} function gen(){yield 1;} للتعامل مع البيانات الكبيرة
array_slice قص المصفوفة array_slice($arr,0,2); array_slice([1,2,3],0,2); للحصول على جزء
array_splice إزالة وإدراج array_splice($arr,1,1,[5]); array_splice([1,2,3],1,1,[5]); تعديل المصفوفة
compact إنشاء مصفوفة من المتغيرات compact("a","b"); $a=1;$b=2;compact("a","b"); للتجميع
extract استخراج المتغيرات من مصفوفة extract(["a"=>1]); extract(["a"=>1]); ينشئ $a=1
debug_backtrace تتبع الأخطاء debug_backtrace(); debug_backtrace(); لمعرفة مصدر الخطأ
assert التحقق من شرط assert($x>0); assert($x>0); لتأكيد الافتراضات
call_user_func استدعاء دالة call_user_func("func",$arg); call_user_func("test",5); ديناميكي
call_user_func_array استدعاء دالة مع مصفوفة call_user_func_array("func",[$a]); call_user_func_array("test",[5]); ديناميكي
func_get_args الحصول على وسيطات الدالة func_get_args(); func_get_args(); مفيد للدوال المرنة
ob_flush إرسال المخزن المؤقت ob_flush(); ob_flush(); مع ob_start لتحسين الأداء

📊 Complete بي إتش بي Properties Reference

Property Values Default Description بي إتش بي Support
memory_limit int string 128M تحديد الحد الأقصى للذاكرة
max_execution_time int 30 الحد الأقصى لتنفيذ السكربت PHP 5+
error_reporting int E_ALL تحديد أنواع الأخطاء PHP 5+
display_errors 0,1 1 عرض الأخطاء على الشاشة PHP 5+
post_max_size int string 8M أقصى حجم للبيانات المرسلة
upload_max_filesize int string 2M أقصى حجم للملفات المرفوعة
session.save_path string /tmp مسار حفظ جلسات المستخدم PHP 5+
date.timezone string UTC المنطقة الزمنية الافتراضية PHP 5+
default_charset string UTF-8 ترميز النصوص الافتراضي PHP 5+
log_errors 0,1 1 تمكين تسجيل الأخطاء PHP 5+
max_input_vars int 1000 الحد الأقصى للمتغيرات المرسلة PHP 5.3+
realpath_cache_size string 16K حجم ذاكرة التخزين المؤقت للمسارات PHP 5+
opcache.enable 0,1 1 تمكين OPCache لتحسين الأداء PHP 5.5+
session.gc_maxlifetime int 1440 مدة صلاحية جلسة المستخدم PHP 5+

باختصار، دليل سريع PHP يوفر أساساً قوياً لتعلم بي إتش بي بشكل عملي ومتقدم. من خلال فهم التركيبات الأساسية، هياكل البيانات، الخوارزميات، ومبادئ OOP، يمكن للمطورين كتابة برامج فعالة وآمنة وقابلة للصيانة. يربط الدليل بين النظرية والتطبيق، مع نصائح عملية لتجنب الأخطاء الشائعة وتحسين الأداء.
بعد إتقان هذا الدليل، يمكن الانتقال لدراسة مواضيع متقدمة مثل إطار العمل Laravel، تحسين الأداء باستخدام OPcache، إنشاء واجهات برمجة التطبيقات RESTful، وإدارة قواعد البيانات بشكل احترافي. ينصح بتطبيق الأمثلة عملياً في مشاريع صغيرة أولاً، ثم توسيع نطاقها لتطبيقات أكبر، مما يعزز فهم بي إتش بي العميق ويجعل من المطور خبيراً في بناء أنظمة متقدمة ومستقرة.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

4
الأسئلة
🎯
70%
للنجاح
♾️
الوقت
🔄
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى