رفتن به مطلب

آموزش مقدماتی php


Mahdi Askari

ارسال های توصیه شده

سلام خدمت همه دوستان و کاربران خوب نواندیشان

با توجه و دقت دوست خوبمون آقای ایمان تاپیک که از بین رفته بود از گوگل کش پیدا شد و مجددا ایجاد شد.

 

محمد مهدی عسکری هستم

طراح و توسعه دهنده برنامه های تحت وب

 

در خدمت شما هستم با آموزش مقدماتی زبان برنامه نویسی php

 

پیش نیاز این آموزش html و css هست که من با فرض یاد داشتن شما این تاپیک رو پیش میبرم

 

توضیحات مختصری در زبان php خدمتتون بیان میکنم.

 

این زبان یک زبان server-side هست و پردازش ها تحت سرور انجام میشه.

این زبان به دلیل مفسری بودن انعطاف پذیری بسیار بالایی داره که از این جهت سرعت هم به نسبت کم میشه.

البته این کمبود سرعت به حدی نیست که مشاهده بشه. و در حد صدهزارم ثانیه هست

تعریف متغییر ها بر خلاف زبان های مترجمی که باید نوع متغییر بیان شود ( ;int x; OR char y ) نیازی به تعریف ندارد.

یعنی متغییر که در خط فعلی به عنوان متغییر نوع صحیح استفاده میشه در خط بعدی میتونه به عنوان متغییر کاراکتری استفاده بشه.

زبان php اکثرا روی سرور های لینوکس که قدرت و کیفیت بالایی دارند بعلاوه هزینه کمتری دارند اجرا میشه که در زبان هایی مثل asp باید روی سرور های ویندوز که قیمت بالایی دارند پشتیبانی بشن.

این زبان بر خلاف زبان asp زبانی اوپن سورس هست که از این بابت برای مشتریان یک امنیت خاطری هست که بتونن کدها رو ببینن و بدونن موارد از جمله شل و بد اسکریپت روی سیستم و اسکریپتشون نصب نشده باشه.

 

 

امیدوارم دوستان علاقه مند این تاپیک رو دنبال کنن

 

و با اجازه مدیران بخش برای این تاپیک یک نکته ای میذاریم که امیدوارم دوستان دعایتش کنن

نکته: دوستان عزیز برای منسجم موندن مطالب تاپیک لطفا در این تاپیک ملبی نذارید.

تاپیک تحت عنوان " مشکلات آموزش مقدماتی php" ایجاد شده که میتونید انتقاد پیشنهاد و یا مشکلاتتون رو در اون مطرح کنید .

لینک تاپیک:

http://www.noandishaan.com/forums/thread128889.html

اگر هم همینجا مطالبتون رو نوشتید به روی چشم بنده موظف هستم به مشکلاتتون پاسخ بدم.

 

موفق باشید.:icon_gol:

لینک به دیدگاه

خب در این پست سعی میکنیم به متغییر ها بپردازیم.

 

 

تعریف متغییر در این زبان بسیار ساده هست و بدون نیاز به نوع متغییر ، فقط با گذاشتن $ اول نام متغییر تعریف میشه.

و به دلیل اینکه در این زبان انقیاد نوع نداریم(یعنی تعریف یک متغییر نوع خاصی ندارد -- مثال بعد از مطلب) یک متغییر را میتوانیم در آن هم عدد نوع صحیح بگذاریم هم عدد ممیز دار و هم کاراکتر.

مثال:



int x;
x='c';
// خطا در انقیاد نوع (نوع متغییر با مقدار آن همخوانی ندارد)


در زبان php:
$x=56;
$x='salam';
//بدون خطا


 

 

اما در این زبان دو نوع مقدار برای هر رشته میتونیم تعریف کنیم:

  1. مقادیر محاسباتی: این مقادیر مانند اطلاعات گرفته شده از دیتابیس و یا مقادیری که برای محاسبات از آن استفاده میکنیم به کار میره
  2. مقادیر رشته ای : این مقادیر رشته هایی هستند که درون متغییر ریخته و از آن استفاده میشود.

 


$mahdi=0; //// مقدار محاسباتی
$mahdi='0'; //// مقدار رشته ای

 

در اولی ما مقدار 0 رو درون متغییر مهدی میذاریم اما در دومی ما کاراکتر 0 رو میذاریم توی متغییر.

 

 

 

 

برای تعریف کاراکتر رشته ای از ' ' و یا " " استفاده میشود و این رو هم یادآور م یشم که آخر هر دستوری که به انتها میرسه ; قرار میدیم.

اما فرق ' ' با " " در چی هست؟

' ' متغییر هایی صرفا رشته ای تولید میکنه.

اما " " متغییر رشته ای محاسباتی تولید میکنه.

مثال:


$name='mahdi';
$print="My name is $name"; // out: My name is mahdi
$echo='My name is $name'; // out: My name is $name

 

اگر این دو رو چاپ کنیم متغییر print که رشته ای محاسباتی در خودش داره چاپ خواهد کرد My name is mahdi

اما متغییر echo چاپ خواهد کرد My name is $name

لینک به دیدگاه

خب زین پس نیاز میشه که برنامه های پی اچ پی رو اجرا کنید

برای این کار باید یا سرویس هاستی خریداری کنید (لینوکس) ویا اینکه از مجازی ساز روی سیستم خودتون استفاده کنید که هزینه هم نخواد پرداخت کنید

من خودم ومپ سرور رو پیشنهاد میکنم بهتون که آموزشش اینجاست و لینک دانلودش هم از سایت مبدا در همین سایت موجود هست:

http://www.itchannel.ir/articles.php?aId=74

و همونطور که میدونید پسوند فایل های در این زبان php. هست.

 

اما موضوع مهمتر اینکه چون تازه دارید یاد میگیرید بعضی جاها گنگ میشه براتون و ممکنه از آموزش زده بشید توصیه میکنم حتما با جدیت بیشتری در این مواقع کارتون رو دنبال کنید

و توصیه ای دیگه اینکه فایل هایی که با هم جلو میریم رویک جایی ذخیره نگه دارید بعدا که برنامه نویس حرفه ای شدید شاید دوست داشته باشید مرور خاطرات انجام بدید.

 

 

 

 

 

توابع در php

توابع در این زبان هم مانند همه زبان های برنامه نویسی دو نوع داره

1- تعریف شده توسط خود زبان

2- تعریف شده توسط برنامه نویس( تعریف شخصی و یا ضمیمه کردن به صفحه)

 

توابع پیش فرض زبان که مشخص هستند تعریف شده هستند و هر جا که نیاز بود از آنها استفاده میکنیم.

 

اما توابع تعریف شده توسط برنامه نویس چه به صورت ضمیمه شده و چه به صورت تعریف شخصی ساختار مشابهی دارند.

 

 

 

ساختار کلی تعریف توابع در این زبان به این شکل است:

 

function NAME(Value-1,Value-2,...){
.
.
.
.
}

که به جای NAME اسم تابع و به جای value متغییر های تابع قرار داده میشوند.

 

در این زبان به دلیل مفسری بودن زبان تفاوتی در اینکه تابع رو در کجا صفحه نوشته باشید نداره و فقط کافی هست در جایی از صفحه نوشته شده باشه.

( برخلاف زبان های مترجمی مانند asp که حتما باید قبل از نوشته شدن کد اصلی نوشته شده باشه)

 

 

اما حتما دیدید که در سایت ها مکانی برای مثال مانند هدر قرار دارد.

این سایت اگر 5 صفحه داشته باشد آیا باید در هر 5 صفحه توابع و کلاس ها و کد های هدر نوشته شوند؟

جواب به این سوال خیر هست.

در این مواقع فایلی درست میشود توابع و کد های هدر در اون قرار میگیرد و برای استفاده فقط کافی هست آن فایل رو به صفحه ضمیمه کنیم.

 

در ضمیمه کردن تابع هم همین اتفاق می افتد فایلی برای تابع نوشته میشود و آن را به به صفحه ضمیمه میکنیم

مانند:

fun.php که به صفحه توسط کد زیر ضمیمه میشود.

 

include "includs/functions/fun.php";

که این فایل رو که در پوشه includs/functions/ قرار دارد به صفحه میچسباند.

 

 

 

 

شاید این جلسات اول کمی گنگ باشد اما از جلسه بعد که عملگر ها رو درس میدم و دستم برای مثال زدن باز مشه

برای همه این موارد مثال میزنم.

موفق باشید.

لینک به دیدگاه

سلام دوست عزیز ممنون بابت آموزشتون ، اگه کمی کاربردی تر بشه و تمرینهایی هم کنار هر مبحثی گذاشته بشه خیلی خوبه ، بازده بهتری خواهیم داشت :icon_gol:

واینکه اگه بشه پروژه ای در نظر گرفته بشه با مباحث هر بخش پروژه کامل بشه عالیه ، ممنون:icon_gol:

لینک به دیدگاه
سلام دوست عزیز ممنون بابت آموزشتون ، اگه کمی کاربردی تر بشه و تمرینهایی هم کنار هر مبحثی گذاشته بشه خیلی خوبه ، بازده بهتری خواهیم داشت :icon_gol:

واینکه اگه بشه پروژه ای در نظر گرفته بشه با مباحث هر بخش پروژه کامل بشه عالیه ، ممنون:icon_gol:

 

سلام

ممنون از شما بابت دنبال کردن آموزش

دوست عزیز در حال حاضر درحال توضیح دادن نحوه تعریف متغییر هستیم

کل حرف من در در پست دوم این بود که نهایتا به همین کلمه برسیم --> name$

که نحوه تعریف متغییر هست

کاربردی تر از این نمیشد بحث کنم

جلسات اول هست هنوز هچ گونه برنامه نویسی من توضیح ندادم توش بخوام کاربردی مثال بزنم انشالله از جلسات بعدی که یکم پیشرفته تر بشه مباحث مثال های متنوع تر خواهیم زد

در حال حاضر چون هنوز چیزی نوشته نشده نمیتونم روش مانور بدم

 

اما در مورد مسئله دوم که با هم یک پروژه رو بخوایم پیش ببریم

خود من اصلا این مورد رو نمیپسندم

این مورد چون هنوز شما هیچگونه پیش زمینه ای از این زبان و برنامه نویسی ندارید در ذهن شما نقش میبنده و جلوی خلاقیت شما رو در این زمینه میگیره

خلاقیت موقعی بوجود میاد که وقتی ما بلدیم جمع رو حساب کنیم از داخل جمع ، ضرب رو بسازیم. نه اینکه همون جمع رو به اعداد بالا گسترش بدیم

خود من پروژه ها رو بعد از پایان هر مطلبی که نیاز باشه جوری تعریف میکنم که خلاقیت شما رو به کار بگیره و چند نمونه متنوع از یک مورد داشته باشیم

موفق باشید

لینک به دیدگاه
سلام

ممنون از شما بابت دنبال کردن آموزش

دوست عزیز در حال حاضر درحال توضیح دادن نحوه تعریف متغییر هستیم

کل حرف من در در پست دوم این بود که نهایتا به همین کلمه برسیم --> name$

که نحوه تعریف متغییر هست

کاربردی تر از این نمیشد بحث کنم

جلسات اول هست هنوز هچ گونه برنامه نویسی من توضیح ندادم توش بخوام کاربردی مثال بزنم انشالله از جلسات بعدی که یکم پیشرفته تر بشه مباحث مثال های متنوع تر خواهیم زد

در حال حاضر چون هنوز چیزی نوشته نشده نمیتونم روش مانور بدم

 

اما در مورد مسئله دوم که با هم یک پروژه رو بخوایم پیش ببریم

خود من اصلا این مورد رو نمیپسندم

این مورد چون هنوز شما هیچگونه پیش زمینه ای از این زبان و برنامه نویسی ندارید در ذهن شما نقش میبنده و جلوی خلاقیت شما رو در این زمینه میگیره

خلاقیت موقعی بوجود میاد که وقتی ما بلدیم جمع رو حساب کنیم از داخل جمع ، ضرب رو بسازیم. نه اینکه همون جمع رو به اعداد بالا گسترش بدیم

خود من پروژه ها رو بعد از پایان هر مطلبی که نیاز باشه جوری تعریف میکنم که خلاقیت شما رو به کار بگیره و چند نمونه متنوع از یک مورد داشته باشیم

موفق باشید

 

 

درست میفرمایید ،در ابتدا کمتر میشه مثال و تمرینی داشت من به طور کلی گفتم .

در رابطه با مورد دوم هم من خودم چون یه مبانی از پی اچ پی رو خوندم بیشتر دوست داشتم عملی کار کنم نه تئوری ، این پیشنهادو دادم ، ان شالله در جلسات آتی شاهد مثال ها و تمرین هایی باشیم.

ممنونم از شما

لینک به دیدگاه

سلام

امروز کمی در مورد عملگر های محاسباتی صحبت میکنیم.

عملگرهای محاسباتی در این زبان با ریاضی فرقی نمیکنن

عملگر + برای جمع دو عدد

عملگر - برای تفریق دو عدد

عملگر * برای ضرب دو عدد

عملگر / برای تقسیم دو عدد به کار میرن

مانند ریاضیات در اینجا هم تقدم () بر این عملگر ها رو شاهد هستیم

یعنی ابتدا پرانتز ها سپس ضرب و تقسیم و سپس جمع و تفریق اولویت محاسبه دارند.

 

برای اتصال دو رشته به هم از " . " استفاده میشه.

 

اما مهمترین تابعی که در این زبان وجود داره تابعی برای چاپ خروجی به کاربر هست

مانند زبان زبان c تابع print در این این زبان هم وجود داره

اما تابعی بهتر با کارایی بالاتر هم وجود داره که echo هست. این تابع هر چی جلوش باشه به صرف متغییر بودن رشته ای یا رشته ای محاسباتی بودن رو چاپ میکنه.

مثال:

 

 

$name='mahdi';
$family='askari';
echo $name.$family;   /// out: mahdiaskari

 

اما همونطور که دیدید دو رشته به هم چسبیدن

بعضی مواقع مثل اینجا که نیاز هست اسم و فامیل از هم جدا بشن میتونیم یا توی متغیر اسممنون بعد از نوشتن اسم یک اسپس بذاریم و یا این اسپیس رو در هنگام چسباندن دو رشته بذاریم.

 

مثال:

 

$name='mahdi '; /// with Space
echo $name." ".$family;

در کد دوم ما اسپس رو بین اسم و فامیل قرار دادیم

 

 

خب اما مثالی بزنیم برای تعریف تابع:

محسبات رو شما میتونید در یک مکان انجام بدید و یا اون محاسبات رو به تابع بسپارید.

 

فرض کنید شما میخواید جمع دو عدد مثلا 6 و 9 رو حساب کنید.

میتونید اونو همونجا انجام بدید و با عملگر + جمع کنید و یا میتونید به تابعی مثل add2num بدید و براتون حاصل رو برگردونه.

در این مورد که آسون هست کار میتونید در کد انجام بدید اما برای کارهای سختتر مثلا برای ارسال sms بهتر هست که یک تابع تعریف کنید و به اون بسپارید.

اما حالا ما تابع جمع رو مینویسیم و اسمشو میذاریم add2num:

 

function add2num($a,$b){
return $a+$b;
}

$plus=add2num(6,9);

 

 

 

مثال1: تابعی بنویسید که هر توانی از یک عدد را که کاربر میخواهد حساب کنید.

مثال2: تابعی بنویسید که جز صحیح یک تقسیم را برگردند.

مثال3: تابع تقسیم را بوسیله تفریق بنویسید.

مثال آزاد: تابعی بنویسید با توجه به سطح توضیحات این تاپیک تا همین پست و عملکرد آنرا توضیح دهید ( به عنوان مثال بدست آوردن ضرب از روی جمع)

 

لینک به دیدگاه

سلام بر شما

 

امروز با کمی آشنایی و کار با رشته ها در خدمت شما هستم و همچنین عملگر های منطقی رو هم مفصل بحث خواهیم کرد.

و چند تا تابع مهم در کار با رشته ها رو به شما معرفی خواهیم کرد.

 

 

 

عملگر های منطقی:

 

در پست قبل ما عملگر های محاسباتی رو معرفی کردیم

ولی متاسفانه مبحثی که یادم رفت بیان کنم عملگر های ++ و -- بودند

همانند زبان برنامه نویسی ++C و خانواده C زیان php هم این دو عملگر رو پشتیبانی میکنه

عملگر ++ : یکواحد به مقدار فعلی اضافه میکنه

عملگر -- : یک واحد کم میکنه از مقدار

البته توجه داشته باشیم روی داده های مقداری این دو رو بذاریم

اگر رو داده رشته ای بذاریم خطا دریافت خواهیم کرد.

 

$name='mahdi';
$ name ++; //// error

 

میتونید توی نرم افزاری که معرفی کردم اجرا کنید تا خطای داده شده رو مشاهده کنید.

 

 

عملگر های =+ و =- و =/ و =* هم پشتیبانی میشه که اگر آشنایی ندارید میتونید توی گوگل سرچ کنید.

 

اما عملگر های منطقی که بسیار مهم هستند و کاربرد زیادی داره.

عملگر = : عملگر انتصاب

عملگر == : شرط تساوی

عملگر && : معنی این عملگر « و » هست

عملگر || : معنی این عملگر « یا » هست.

عملگر > و >= : کوچکتر و کوچکتر مساوی

عملگر

عملگر : نقیض و مخالف

 

حالا مثال میزنیم:

 

فرض کنید دارید یک شرط مینویسید ( بعدا مفصلا بحث میکنیم) و در اون قرار هست از این عملگر ها استفاده بشه.

$name ='mahdi';
$family='askari';
if($name=='mahdi' && $family=='ahmadi') // ERROR

if($name=='mahdi' || $family=='ahmadi') // بدون خطا

 

عملگر == شرط مساوی بودن رو حساب میکنه

اما عملگر && میگه به ازای هر دو شرط اگر صحیح بود نتیجه کلی صحیح هست

اما عملگر || میگه به ازای یک کدوم از شروط هم برقرار بود نتیجه صحیح هست

به طور کلی عملگر && میگه شرط اول و شرط دوم

عملگر || میگه شر اول یا شرط دوم ( هر دو هم صحیح بود نتیجه درست هست.)

 

تمرین : اگر در شرط بذاریم if ($name='nahid') آیا شرط اجرا خواهد شد؟

 

 

$number1=3;
$number2=5;
 $name='mahdi';
if($ number1  > $number2 )// False 
if($number1 > 9)// False
if($number2 > $number1   )// True 
if($number2   >1)// True
if($number1  == $number2  )// False 
if($number1   != $number2 )// True 
if($mahdi  > $number2)// False 

 

 

 

خب اما چند تا تابع مهم برای کار با رشته ها:

 


strlen();// تعداد کاراکتر های یک رشته
$x='mahdi'
strlen($x); // out: 5




strstr(); // یک رشته را داخل رشته دیگر جستجو میکند
$x='salam man mahdi hastam';
if(strstr($x,'mahdi')) // شرط اجرا میشود





str_replace(); // رشته ای را با رشته دیگر جایگزین میکند
$x='salam man mahdi hastam';
echo str_replace("mahdi","ali",$x);//outpu salam man ali hastam 






strtolower();// حروف بزرگ را به حروف کوچک تبدیل میکند 


strtoupper();// حروف کوچک را به بزرگ تبدیل میکند[color=#007700]
[/color]

 

تا جلسه بعد بدرود

تمرین: هر چیزی بلدید پیاده کنید دیگه:ws3:

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...