 بسم اللہ الرحمن الرحیم السلام علیکم موڈن پرگیمنگ لنگوڈیز کا آج ہمارا سینٹس میں لیکچر ہے میں ہوں آپ کے ساتھ فخر لوڈی اور ہم دیسکس کرے ہیں پرگیمنگ لنگوڈیز پی اہپی جیسا کہ آپ کو یاد ہوگا پی اہپی سٹینٹس فر پی اہپی ہیپرٹیکس پری پروسیسر یہاں لنگوڈیز ہے یہاں لنگوڈیز ہے جہاں پر سرور سائیڈ پر جو سکریپس ہیں وہ لکھی جاتی ہیں پرگیمنگ لنگوڈیز میں ہم نے اس کے بارے میں کچھ گفتگوڈی کی تھی اور اس کے سینٹکس کو ہم دیکھ رہے تھے آج اسی گفتگوڈی کو ہم آگے continue کریں گے پرگیمنگ لنگوڈیز میں ہم کانٹرول سٹرکٹرس کو دیسکس کر رہے تھے اور آپ کو یاد ہوگا کہ ہم نے اس سلسلے میں بات کی تھی کہ پی اہپی کے کانٹرول سٹرکٹرس تقریباں وہی ہیں جو کہ آپ کو سی پرگیمنگ لنگوڈیز میں آپ کو نظر آئیں گے اور ان کے سینٹکس اور سیمانٹکس almost exactly وہی ہے if statement جہاں تک تعلق ہے PHP میں ایک extra انہوں نے کیورٹ دیا ہے and that is else if else if as one word not as two words so آپ جو else if والی condition ہے اگر آپ multiple conditions اگر آپ لکھنا چاہیں تو PHP میں چاہے آپ else if دو نفسوں میں لکھیں چاہے else if ایک کلفس بناکوں سے لکھیں دونوں چال جائیں گے اور دونوں سے آپ کا کام ہو جائے گا else if جو ہے یہ اس کے کچھ فائدہ بھی ہیں کچھ آگے چلکے دیکھیں گے لیکن ابھی تک ہم نے جو اس کا use دیکھا تھا وہ اس میں کوئی خاص بات ایسی نہیں تھی اور یہ صرف یہ لگ رہا تھا کہ یہ ایک redundancy ہی ہی کریٹ کی گئی ہے لیکن ہم alternative syntax ہم دیکھیں گے آگے چلکے آج کے لیکچر میں انشاء اللہ اور اس میں یہ چیز واضح ہوگی کہ else if کا کیا فائدہ ہو سکتا ہے دوسری جو چیز جو different ہے PHP میں جو C میں نہیں ہے that is for each remember کہ ہمارے پاس جو arrays جو ہے PHP میں normal arrays نہیں ہے جیسی ہماری C میں arrays ہوتی ہیں these are maps اور maps جو ہے کی value pairs کے maps ہیں تو پورے map کے اوپر ڈریٹ کرنے کے لیے جو syntax use کیا جاتا ہے that is for each اور اس میں یہ ہے کہ ایک ایک value آپ کے map میں سے جو value stored ہوں اس وقت اس map میں ان value اس کو ایک ایک کرکھاتے ہیں اور اس کو جس طریقے سے بھی آپ نے process کرنا ہے اس کو process کیا جا سکتا ہے ہمارے پاس اندسیز اس طریقے سے عام طور پر available نہیں ہوتے گو کہ آپ کر سکتے ہیں جس طریقے سے سے C میں بھی index is available ہے ایرے میں یہاں پر بھی وہ کیا جا سکتے ہیں لیکن عام طور پر آپ کے جو کی value pair ہے اس میں وہ index اس ویسے نہیں ہوں گے بہرال یہ ہماری پچھلی گفتگو کا کچھ خلاصہ تھا جو میں آپ کے سامنے پیش کیا آج ہم اسی سے آگے اپنی بات continue کرتے ہیں اور سب سے پہلے یہ control statements کی زمرے میں these statements ہم دیکھیں گے وہ ہیں break and continue کی statements break and continue کی statements یہ تقریبا اسی طریقے سے ہے جس طریقے سے ہمیں C میں نظر آتی ہیں لیکن there are some minor differences تھوڑے سے differences ہیں اور اس سے باز کا once again confusion پیدا ہو جاتا ہے میں بار بار یہ چیز کہہ رہا ہوں کہ confusion اس وجہ سے پیدا ہوتا ہے کیونکہ آپ already C سے واقف ہوں تو جو وہ اس سے ملتے جلتا ایک construct دیکھے گا ایک statement دیکھے گا لیکن اگر اس کی semantics تھوڑے سے فرق ہوں گے تو غلطی کرنے کے chance بہت پڑھ جاتے ہیں تو آپ لوگوں کو بہت محتاات رہنے کی ضرورت ہے کیونکہ یہ دکھنے میں اور بہت حتک بیحیویر میں بھی یہ اسی طرح کے ہیں لیکن کچھ کچھ جگوں پے کچھ differences ہیں جن کی وجہ سے مطلب کچھ چینج ہو جاتا ہے اور بیحیویر چینج ہو جاتا ہے اور آپ کو انکسپیکٹڈرزورٹس تو ہیں مل سکتے ہیں تو یہ چیز آپ کے زین میں رہے تو آئیے ضرورت دیکھتے ہیں کہ کیونکہ these difference from C break just like you can see ends execution of the current for for each while do while or switch structure so there is no difference here however break accepts an optional numeric argument which tells it how many nested enclosing structures are to be broken out of here is this one example we have this PHP code so we have this variable I is equal to 0 remember that we need to put dollar before a variable we increment this variable I in this while so what we are doing is we are simply incrementing this pre incrementing and then we say a switch dollar I case 5 echo we print 5 and then we have break 1 this break 1 means that you know we break out of the first block so this will take the control out of the switch statement and the next iteration of this while loop will be executed so if the first case is matched it will simply go back to the while and you know increment I and then again the switch statement will be executed in the second case when we have case 10 we have some echo statement which is printing something in this particular case what we are doing is we want to quit so when this is equal to 10 we quit and how do we quit we say break 2 now this break 2 means that is we want to get out of 2 blocks not just one block so in this particular case it will take us out of the while block as well so یہ ایک difference ہے جو آپ دیکھ سکتے ہیں in the default case you can see that there is this break so this number of blocks that you want to get out of is an optional parameter this break and break 1 they mean exactly the same thing so whether you write break or break 1 it is exactly the same that is in the first case that we have seen case 5 and in the default case the behavior will be exactly the same in case second case that is case 10 we exit from the switch and the while loop تو یہ آپ نے دیکھا کہ کس طریقے سے یہاں پر ایک optional پرمیٹر دیا گیا ہے جس سے آپ number of loops یا number of blocks جہاں سے آپ بہر آنا چاہتے ہیں وہ آپ کو یہ بتا سکتے ہیں تو if you have nested loops if you have nested switch statements and so on and so forth اور آپ ایک سے زیادہ سے بہر نکلنا چاہتے ہیں تو break کے ساتھ یہ optional پرمیٹر آپ دے دیں تو آپ کو وہ اتنی nesting سے وہ بہر لیا آئے گا تو یہ ایک difference ہے آپ کی c میں اور php میں continue کی جو statement ہے یہ بھی تقریباں اسی طریقے سے ہے جس طریقے سے آپ کی c کی continue کی statement ہے with one major difference break کا جو difference تھا یہ میرے خیال میں اتنا major difference نہیں ہے it is easy to follow but continue has a major difference and that is when it is used in a switch statement this kind of behaves like a loop remember c میں اگر continue کی statement for your while loop کے علاوہ کہیں پر آپ استعمال کرتے ہیں تو اس کا کوئی effect نہیں ہے لیکن اگر یہ continue کی statement یہاں پر آپ use کرے ہیں switch کی statement میں php میں تو it will go back to the first statement جہاں پر وہ switch کا جو case ہے جہاں پر آپ کا switch کا expression جہاں پر evaluate کرتے ہیں so it will take you back and then it is kind of a loop within the switch statement اب یہ ایک major deviation ہے جو ہم دیکھتے آئی ہیں syntax ہمارا c کا syntax جو ہے اس سے یہ ایک major deviation ہے question is کہ کیا یہ ایک اچی deviation ہے یا کہ ایک pre-division ہے اگر تو ہم یہ دیکھیں کہ c سے اگر ہم واقف ہیں تو پھر ہمارے لیے مشکلات پیدا ہوں گی لیکن اگر آپ c سے واقف نہیں ہیں اور php کو آپ دیکھ رہے ہیں اس کو independently اگر آپ اس کو ایک language کے طور پر آپ دیکھنا چاہ رہے ہیں اور study کرنا چاہ رہے ہیں کوئی ایسا شخص جو پہلی بار یہ language سیکھ رہا ہے اس کے لیے یہ continue کا behavior is much more consistent in this particular case than we have in the case of c کیونکہ continue کا behavior in the case of c is کہ اگر یہ for یا کسی looping structure کے اندر استمال ہوتا ہے تو یہ it will take you back to the start of the loop اور پھر اس سے وہ loop کی next iteration وہ شروع ہو جاتی ہے لیکن otherwise it is simply ignored لیکن یہاں پر یہ ہے کہ اگر یہاں پر آپ کو continue کی سٹیٹ میں نظر آئے گی تو it will take you back to the start of that structure تو consistency کے point of view سے it is much more consistent as compared to c ہورہاں اگر آپ اس کے semantics کے point of view سے اگر دیکھیں does it make sense کہ continue آئے تو آپ واپس سوچ کی شروع میں چلے جائیں اور implicitly آپ ایک looping کا آپ behavior یہاں پر implement کر رہے ہیں میرا خیالہ ہے کہ it is very confusing because سوچ میں آپ کو loop explicitly نظر آن چاہی اگر آپ loop کر رہے ہیں تو یہاں پر ایک implicit loop ہے it is kind of this go to statement and it can cause lots of problems گلتی سے اگر آپ نے کہیں پر کوئی اس طرح کی چیز لکتی ہے تو it can create problems for you اس چیز کے بارے میں آپ کو محتاط رہنے کی ضرورت ہوگی continue میں بھی break کی طرح سے ایک optional parameter کی گنجائش ہے اور یہ اسی طریقے سے یہاں پر be behavior آپ کو اس کا ملے گا جس طریقے سے break میں optional parameter optional جو آپ نمبر دیکھے number of nested blocks آپ بہر جانا چاہتے ہیں یہاں پر بھی اسی طریقے سے آپ کو behavior ملے گا لیکن this can also cause lots of problems remember کہ یہ php is an interpreted language اور interpreted language ہونے کی وجہ سے بازقات کچھ اس طرح کے problems آسکتے ہیں کہ جو آپ unexpected آپ کے لیے ہو اور اگر آپ کسی وجہ سے کہیں پر کو miss کر جاتے ہیں اور ساتھ میں آپ کی کچھ print statement ہے تو this can really cause a big debugging problems کو بالکل سمجھ نہیں آتا کہ کیا ہوا ہے میں آپ کو کوٹ کی مدد سے یہاں explain کرنے کے کوشش کرتا ہوں اور آپ کو دیکھاتا ہوں کہ یہ کس طرح کے problems اس لنگوچ میں یہاں پر آسکتے ہیں کیوں کہ continue میں ایک optional parameter آپ کے پاس available ہے اور اگر آپ اس optional parameter کو آپ use نہیں کر رہے کیونکہ آپ نے غلطی سے ایک semi colon آپ نے miss کر دیا اور وہ کہیں سے option parameter generate ہو گیا ہے automatically echo or print اگر statement کے ذریعے تو پھر آپ کو continue ایک اجیبہ غریب کیسن کا بیحیویر آپ کو دے سکتا ہے آئیے ضرر دیکھتے ہیں here is this example of this code we have this for loop in this PHP so there is nothing to this for loop really so let's get inside this for loop and look at this if statement and actually you know the body of the if statement you say if i is equal to 2 continue print dollar i backslash n now what happens here we have skipped this semi colon so what is happening is now we start with i is equal to 0 if i is equal to 0 nothing happens what we are expecting is probably we are expecting that this loop would print 0 1 3 and 4 and it will skip 2 when i is equal to 2 then it will not print otherwise it will print all the other values that are 0 and 4 including 0 and 4 less than 5 so all those values would be printed but what happens really is that when we execute this code we say you know if i is equal to 2 continue and then since there is no semi colon so we have actually missed a semi colon here we have this print dollar i backslash now what happens here in this particular case it will treat this whole continue print dollar i backslash and semi colon as 1 statement not 2 statements so when i is equal to 0 it will not do anything because this condition is not met and we have only one statement there when i is equal to 1 the same thing happens when i equal to 2 so what happens is we have continue print dollar i we print dollar i actually print 2 so when we print 2 so what happens is that we have this continue 2 in this particular case it will simply print 2 and nothing else so skipping or omitting a semi colon after continue can lead to major confusion because it is exactly opposite to what you were expecting and the error was that there was a missing semi colon here the PHP runtime system will not this problem and it will simply give you an error here so what happens is this print function actually returns integer 1 so this is kind of a function that we are calling so we say continue and then this optional parameter is an expression so it actually evaluates to continue 1 because this print returns 1 so continue 1 means that we want to get out of this 1 loop 1 enclosing loop that is we will exit this for loop at this point in time and we will come out and actually nothing so there will be only 3 iterations 0,1 and 2 and we will not have 5 iterations in the first place and the second thing is the result that the output that we get in this particular case is going to be very very different from what we were expecting so here you have seen that because this optional parameter is an expression so you can give any expression here you can give it it is not a constant that you provide here and in PHP whenever any of your statements are executed they are actually kind of expressions because this value will return to you in this particular case a print statement a value 1 returns this returns true which is value 1 so value 1 returns this is a parameter because if you call a function you could have expected this and you would have expected this totally behavior this unexpected behavior in the break this situation will come to you so remember this that if in the break and in the continue if you have missed the semicolon by mistake and the next argument is that break or continue and you will get very strange results and this kind of problem which is very difficult to debug so this is an optional parameter it has a side effect some may benefit but here it has a negative so this language would have been designed better if this optional parameter because it has to be a constant not a variable کہ یہاں پر آپ کوئی expression نہیں use کر سکتے آپ کوئی function وگرہ use نہیں کر سکتے you have to specify one constant اور اگر ایسا ہوتا تو شاید آپ کو زیادہ بہتر result ملتے لیکن بہر حال in the current shape and form we have this kind of a problem تو یہ اس چیس سے آپ کو محتات رہنے کی ضرورت ہے اور جات رہا ہے کہ PHP کسی قسم کی کوئی error کیوں کہ اس کے لیے یہ بلکل ایک لیگل کام ہے اس کے بعد اب دیکھتے ہیں کہ یہ جو ہمارے کنٹرول سٹرکچرز ہیں اس کا ایک ارٹنیٹیف سنٹیکس پی پی حپی نے دیا ہوئے which is slightly different from c and it is perhaps more structured as compared to c it is closer to ایدا and it gives you kind of blocks جو آپ کو c میں explicitly آپ کو دنے پڑتے ہیں and this is where the else if comes into picture تو else if جو ایک لفس کی طور پہ جو میں آپ کو پہلے پیچل لیکچر میں دکھایا تھا کہ یاد رہے کہ c میں ہمارے پاس اف سٹیٹمنٹ میں else if بھی ہے تو یہاں پر جب ہم else if لکتے ہیں تو یہ ایک سٹرکچر کے طور پہ آتی ہے اور اس کو استعمال کی ارٹا سکتا ہے just like we saw else if in ڈا کسی تری کی ارٹنیٹیف سنٹیکس ہے آئی ذر دیکھتے ہیں پیچس پی پی دی بروں میں Couldn't va HuhRadd سیخ کوشت کھو مجہی مجھےشرکینtrans NICK ارٹنیٹیف سنٹیکس ایک جو بعد surrounded آителей another完 amar and اگر اف کا ہے تو آخر میں اینڈ اف ہوگا اگر فور کا ہے تو اینڈ فور ہوگا اینڈ so and so forth تو start میں جو آپ کی opening brace ہے that is replaced by this colon and the closing brace is replaced by the appropriate keyword so یہ ایک آپ کو سٹرکتر ملتا ہے this is what it looks like opening brace we have colon now and you know when we have this and brace we have the and if so it gives us more structured kind of thing not one thing here that let's look at this first clause and that is if a is equal to five now we have two statements that we want to execute in the case of see we would need braces around these otherwise we will have a problem not one thing here also that now if we use two separate words else if not else if as one word but else if just like here we will have problem because in that particular case each if must be matched by corresponding and if so what we would need in this particular case is with this else if it is actually start of a new if statement so we must have a corresponding and if here and then we have another and if for the entire if statement and note one thing here also that the last clause that is the else part the last clause in this party will be part of the second if statement not the first if because with the first if we already have its else so this is what we have in this particular case so if you write else if like we use to write and see we can have some confusion and problem and if we use the syntax there okay so we need to be very careful because it is very very easy to make a mistake we use the syntax because looks much more structured but it is very easy to make a mistake and then we can have confusion and problem so this we have seen that what kind of PHP has given alternative syntax and this alternative syntax is a better structured syntax for you to write a code in this case remember that if you did not put parentheses by mistake in C then it could mean something here you have identified that from the end if here your if statement is ending here and for you have said that for the statement is ending in so and so forth so this is a more structured language design point of view a better approach is seen unfortunately this old style C style structure also supports them and because there is no restriction in the language that you cannot match them or you cannot write another statement between a statement because of this it can create a lot of problems the way we have seen in the last example so from a language design point of view you need to be consistent either you adopt the same style of C if you do not like that style then you do a structured approach of PHP if you bring both then maybe it will be more beneficial because when else if it will be written here what will be the meaning of that, how will it work, this can cause problems and confusion for the programmer and all kinds of stuff so this is not a good thing for a language design point of view the next topic I want to discuss with you is PHP functions how do you write PHP functions these functions are about the same as syntax you get a lot of syntax like the syntax of C تقریباً آپ کو وہی بھیحیویل یہاں پر بھی ملتا ہے اور more or less اسی طریقے سے آپ یہاں پر بھی function لکھتے ہیں ہواہور there are once again slight differences اور انہیں differences کی وجہ سے باز کا confusion پیدا ہو جاتا ہے اور کچھ چیزیں ایسی ہیں کہ which are actually very non-traditional اور اس کی وجہ سے اگر آپ نے کوئی programming language دیکھی ہوئی ہے تو بہت confusion can create ہوسکتا ہے کہ یہاں پر کچھ ایسا بھی حیویر ہے جو ادر بایس کسی بھی اور لنگوچ میں عام طور پہ آپ کو نظر نہیں آئے گا تو یہاں پر بھی یہ لنگوچ جو ہے main stream سے ہٹھ کے انہوں نے کچھ ایسے کام کیوں ہیں which can create lots of problems for the programmer and people who are reading the code تو جرہ اس کو دیکھتے ہیں کہ یہ فنکشن جو ہے کس طریقہ سے سیملر ہے اور کھا کھا یہ دفرنسی ہے اور مجھے دفرنسی ہے کس چیز میں ہے آئیے ایک بر پر سلائٹس پہ چلتے ہیں a php function just like I mentioned earlier on looks very very similar to a c function so we have these arguments they are separated by commas and so forth and we have name of the function what we have to do in php is which we do not do in c is we have to specify that this is a function by using this keyword function so this reserve word function tells the php processor that this is the definition of a function we remember that we do not have to specify that in c in c we specify the type of that function here since this system is type less that is there is weak typing it does not matter what does it return because that type will automatically be given to the variable so here that type is not mentioned but other than that the word function is mentioned to signify the start of the definition of this function so far there is not much difference here where we have difference is that in php you can have a function inside a function so we have this example in this we have this foo and inside this foo we have this bar function so we have two functions one is foo and foo contains another function bar and bar has some code here now the problem really is that this bar is not generally available until this function foo is called in programming languages like eda where you can have functions inside functions where you can nested functions eda, pascal, modular, algal this type of languages we have seen eda before where you can have functions inside functions this behavior is very different from that this is different from c because you cannot define functions inside c how is this different from eda that once you have called this function foo then this function bar is also available once this function is called once the control gets inside this thing this definition is made available and now the bar function can be called from anybody so once this foo has been called now bar is available you can call bar in your code also remember that in eda you could not call bar from outside foo because this bar would not be visible to anybody else when we declare functions inside functions or define them then that function is for our peers i.e. siblings which are defined by other functions they are available on that level or they are visible or they are visible or they are visible to their parent but if this is not in that hierarchy then this function would not be visible to anybody else so here is a major difference which can be done in php php also sports recursive functions just like rc so there is no difference here php sports passing arguments by value and this is the default in order to pass by reference you have to use the ampersand so this is once again very very similar to c another thing that php has is that we can have default argument values just like c++ remember java does not have default argument values whereas c++ you can have so from that point of view this looks very very similar to c++ that is you can have arguments pass by value pass by reference and default argument values also you can also return a reference form function in order to return a reference form function you have to use the reference operator and in both the function declaration and when assigning the return value to a variable so this is once again the difference that we did not have this kind of a thing in c++ in c++ when you return a reference obviously in that particular case you mention in the function prototype that you are returning a reference from there that is you are returning a pointer whatever but when you are calling this function you also need to have this ampersand there to signify that you are taking the reference of this thing so here is this example we have this function and return reference it returns reference of something so what it does is it returns that variable you are not explicitly returning the reference you are returning some variable what PHP does is it returns the reference of that variable because that is what it is supposed to use and when you use this function that is we have new ref is equal to and return references here again you have to put this ampersand before you can use this value by reference so though یہاں پر چیزوں میں difference ہے ایک تو یہ آپ کا return may update here you are returning this simple variable but it is actually the reference of that variable that is being returned you are not returning the pointer and the second thing is that when you are calling this function you have to call this function with ampersand both function declaration and assigning the return value PHP also have variable functions I will not go much deeper into this variable function concept but these are like function pointers so just three cases we have function pointers see میں ہوتے ہیں یہ تقریبا نسی طرح کا میکنیزم ہے and it can be used to make call back and those kind of things you will see the behavior here so these functions that we have seen the three cases that I have mentioned before that you will see a lot of syntax in this syntax with some differences the first difference was that you will have to use this function the reserved word in order to identify that this is the definition of a function so this is the pre-processor of PHP اس کو دیکھتا ہے اور پھر اس کے بعد یہ function کی definition اپنے پاس ڈور کر لیتا ہے تو یہ تو ایک پہلہ دفرنس ہے دوسرا جو مجر دفرنس یہاں پر ہے وہ یہ ہے کہ function کے اندر function آپ ڈیکلیر کر سکتے ہیں ڈیفائن کر سکتے ہیں اور یہ function کے اندر function اپنے بنایا ہے یہ اس کا بھی ہے where بہت مختلف ہے جو آپ کو کسی بھی دوسری لنگوج میں عمتور پی آپ کو یہ چیز ملے گی جو main stream کی کسی لنگوج میں جو یہ چیز شاید ہی ملے اور وہ یہ ہے کہ دوسری لنگوج میں جو structure programming پرادائم کو سپورٹ کرتی ہیں جس تھی کیسے میں نے ذکر کیا ڈلگول c++ ڈلگول آپ کے پاس پیسکال ایدہ یہ لنگوج ہے اور c++ اور جاوہ جو لنگوج ہیں یہ function کے اندر function کو سپورٹ نہیں کرتی ہیں وہ جو دوسری structure programming کی لنگوجیں ہیں وہ سپورٹ کرتی ہیں لیکن ان میں جو behavior وہ ایک abstraction کا میکنزم ہے کہ function کے اندر جو function استعمال کیا ہے that is for use inside that function only not for anybody else تو وہ ایک اس function کا اپنا utility function ہے جو وہاں پر استعمال ہو رہا ہوتا ہے دوسرے کے لیے نہیں ہے تو یہاں پر یہ ایک behavior بہت totally chained ہے وہ یہ ہے کہ جب یہ function call ہوتا ہے اس وقت اگر یہ function کے اندر جو function لکا ہوا اس کی definition جو ہے elaborate ہوتی ہے اور یہ now available ہو جاتی ہے کسی بھی کی علیے کہ یہ function call کیا رہ سکتا ہے تو جب تک اس سے بہر والا function call نہیں ہوا اس وقت تک بات یہ ٹھیک ہے اس وقت کوئی اس میں خاص بات نہیں اس وقت تک بیسے ہی ہے it is not available لیکن after that function has been called تو it becomes available and that is a major deviation it can cause problems, confusions کہ یہ کیا ہوا پہلے کیوں نہیں تھا اور اب کیا ہے تو اس چیز کو سمجھنے کی ضرورت ہے یہ ایک major deviation ہے دوسری جو چیز ہے وہ یہ ہے کہ جب آپ reference واپس کرتے ہیں کہ کوئی function reference ریٹن کرتا ہے تو in that particular case آپ کو جہاں پر آپ نے function declare کیا define کیا ہے وہاں پر بھی آپ کو یہ بتانا پڑے گا کہ یہ reference آ رہا ہے by putting that ampersand there اور اس کے ساتھ جب آپ اس function کو call کر رہے ہیں تو جہاں پر آپ نے اس کو call کیا ہے تو وہاں پر بھی آپ کو یہ بتانا پڑے گا کہ یہ ampersand کہ یہ function یہاں سے pointer واپس آ رہا ہے اب یہ ایک لحاظ سے ایک اچھی بات بھی ہے اور ایک لحاظ سے یہ تھوڑا سا باز کا کنفیشن بھی ہو جاتا ہے اچھی بات یہ اس تری کیسے ہے جس تری کیسے ہم نے c sharp میں دیکھا تھا کہ جب ہم اس طرح سے کوئی argument سوگر پاس کرتے ہیں تو ہم explicitly اس argument کا mode جو ہے وہ specify کر دیتے ہیں جہاں پر call بھی کیا ہوتا کہ جو read کرنے والا بندہ ہے اس کو یہ چیز آسانی سے یہ نظر آ جا ہے کہ یہ یہاں پر کیا ہو رہا ہے لیکن at the same time confusion اس لی ہوتا ہے کہ c sharp میں کیوں گئے it was consistent آپ کو ویسا ہی ایک language پوری کی پوری اس تری کی سپورٹ کر رہی اور compiled language ہے php کیوں کا compiled language نہیں ہے اور اگر آپ نے غلطی سی یہ چیز omit کر دی ہے تو you may not see a problem there and you may get some unexpected results یہ problems ہیں جن کو آپ کو آپ کو aware ہونے کی ضرورت ہے php جو ہے یہ user کو function define کرنے کی آپ کو مواقع دیتی ہے you can also define your own functions لیکن اس کے ساتھ ساتھ php میں ایک بہت لمبی چاڑی list available ہے utility functions کی that are already there جو آپ اس کو دیکھ کے استمال کر کے تو آپ اپنہ کام اس سے کر سکتے ہیں وہ تقریبا اسی طریقے سے استمال ہوگئے جس طریقے سے ہم یہ بھی دیکھ چکے ہیں تو آپ وہ جو reference manuals they are freely downloadable آپ php کا reference manual download کر لیجی ہے اور اس میں جو functions کی list ہے اس کو آپ دیکھئے اور اس کو آپ اپنے استمال میں لے کیا یہ it's a freely used thing بڑی اسانی سے اس کو آپ سمجھ سکتے ہیں اور اس کو استمال کر سکتے ہیں تو کوئی اس میں خاص بات نہیں ہے there is a long list of functions available which are built in functions بہران اب ہم چلتے ہیں آگے اور php میں جو language کے point of view سے جو اگلا آپ کے پاس جو چیز available ہے that is classes and objects php classes sport کرتی ہے اور classes یہ جاوہ کی طرح کی classes ہیں یہ یاد رہے کہ php کچھ جاوہ کی طرح کی language نہیں ہے کیونکہ اس میں functions جو وہ جاوہ سے باہر بھی آپ دیفائن کر سکتے ہیں اور آپ classes کو use کیے بغیر بھی آپ بہت کچھ کام کر سکتے ہیں اس سے پہلے ہم quote دیکھ چکے ہیں php کا جس میں classes کہیں پر بھی نظر نہیں آئی تھی اور جاوہ میں آپ کو یہ یاد رہے گا کہ ہر چیز آپ کو class کی اندر لکھنے کی ضرورت ہوتی ہے تو یہاں پر ایسا نہیں ہے یہاں پر جو classes ہیں گو کہ وہ structure میں شکل صورت میں آپ کو جاوہ کی classes کی طرح نظر آئیں گی لیکن ظاہر ہے کہ it is not really an object oriented language اسی طریقہ سے class کی word آپ use کرتے ہیں to make a class class کی اندر variables اور functions ہوتے ہیں remember کہ these variables they do not need to be declared لیکن آپ ان کو استعمال کر سکتے ہیں اور وہ آپ کو جس طریقہ سے جسی آپ functions میں آپ کریں گے تو وہ آپ کو اس کے ساتھ values maintain کریں گے classes میں کچھ چیزی ہے you can declare variables by using variable declaration mechanism and then you can assign those تو یہ بہت حتک وہی mechanism ہے جو آپ کو جاوہ میں نظر آئے گا PHP آپ کو classes کو extend کرنے کی یعنی کہ inherit classes کو کرنے کی رضہ دیتی ہے اور یہاں پر mechanism بھی بڑی حتک وہی ہے جیسا کے جاوہ میں ہے یعنی کہ it sports single inheritance تو single inheritance classes کیا آپ کر سکتے ہیں اور اس کو extend کر کے آپ نئی classes بنا سکتے ہیں تو بہرحال یہ کچھ ایسی چیزیں جو آپ بنا سکتے ہیں بہت اس میں مختلف چیزیں نہیں ہیں لیکن بہرحال کچھ تھوڑے بہت difference آپ کو نظر آئیں گے اس کے بعد جو important چیز جو میں دسکس کرنا چاہ رہا ہوں PHP کے زمرے میں وہ ہے data base کے ساتھ کام کرنے کی سہولت پہنچ پی جو ہے یہ سرور سائٹ کی سکپٹنگ کے لیے مینلی دیزائن کی گئی تھی گو کہ اس سے آپ دوسرا کام بھی کر سکتے ہیں لیکن it was mainly designed for سرور سائٹ سکپٹنگ سرور سائٹ پر سکپٹنگ کرنے کے ایک اور جو وجہ جو ہوتی ہے ایک تو یہ ہے کہ آپ سکپٹ آپ سرور پے لکھتے ہیں اور وہ سکپٹ PHP کا جو processor ہے وہ اس کو سکپٹ کو Translate کر کے HTML document آپ کو بناا کے دے دے گا اور وہ HTML page جو ہے browser پے ونظر آ جائے گا ایک چیز تو یہ ہے کہ وہ ایک طریک سے آپ اپنے code جو ہے وہ اس کو abstraction وہاں پر مہیہ کر رہے ہیں اور آپ کو جو client کے جو browser کے جو compatibility کے اسیوز جو ہے اس سے آپ کو ان کو ایڈرس کرنے کی ضرورت نہیں ہے کیونکہ آپ نے جس سرور پے آپ نے اس کو چلانا ہے صرف اس کے لیے آپ کو اس کو پروپرلی اس کے ساتھ اس کے ساتھ اکسر application میں ایسا ہوتا ہے کہ آپ کو ڈیٹا بیس سے ڈیٹا کو پروپلیٹ کرنے کی ڈیٹا کو ریٹ کرنے کی یا ڈیٹا کو واپس پرسس کرنے کی ڈیٹا کو ڈیٹا کو ڈیٹا کو رائٹ کرنے کی آپ کو فسلٹی کی ضرورت ہوتی ہے اور PHP میں یہ سپورٹ بہت ڈیٹا بیلے بل ہے جس تریک سے میں اس سے پہلے ہے کہاہ ڈیٹا کو سپورٹ ہے یا بہت ڈیٹا بیسی اور اس میں ڈیٹا کو تک ہی تومام ڈیٹا بیسی کیاکہ ٹیٹا مراد ڈیٹا بیسی ڈیٹا کل سپورٹ کر دیگڈن اس کو سپورٹ کردی ہوسکے ڈیٹا بیسی لہذا ہی جنائرک فرموک آپ کو دیتا ہے کچا ڈیٹا بیسی کچا آپ کو دیتا ہے. میں odbc کی detail میں تو نہیں جا سکتا میرے پاس اتنی مجایش نہیں ہے کہ odbc کیا کرتا ہے once again you can download odbc reference manual یا php کا reference manual میں بھی odbc کے بارے میں بہت detail سے information available ہے لیکن میں یہاں پر آپ کو یہ دکھانا چاہوں گا کہ یہ odbc کے ذریعے کس تری کے سے ڈیٹا بیس سے آپ کنیکشن کرکے اور اپنی information ڈیٹیک کر کے اپنے program میں php میں کس تری کے سے استعمال کر سکتے ہیں اور کیسے یہ آپ کو بڑی آسانی سے یہ سہولت مہیہ کرتی ہے کہ آپ ڈیٹا بیس میں ڈیٹا کو persist اور populate کر کے آپ اپنی dynamic جو web پیجزیں وہ بنا سکیں تو ہی یہ یہ ڈیٹا ہے دیکھتے ہیں. here is this example of this php code which uses odbc. so we have this php start tag and the first statement is we are creating a connection with this database and we are creating an object which is used in this connection. so we are creating this connection object and this connection object creates this odbc connect. so this is a function available which you can use. so we use the name of the database and it will be connected. we need to configure our system. اس میں کچھ آپ کو کچھ چیزیں آپ کو کرنے پڑیں گی. directly یہاں پر استعمال اس تری کے سے نہیں ہوتا. اس سے پہلے کچھ کام کرنا پڑتا ہے odbc کے ساتھ اگر آپ نے وہ کرنا ہے. بہرحال اس وقت اس course میں گجائش نہیں ہے کہ ہم اس کو دیکھیں لیکن بہرحال اگر آپ یہ کام کریں گے تو ذرا odbc کو اچھی تری کسے ذرا دیکھ لیجے گا. اور جسا کہ میں پہلے کہا کہ php کے جو reference manual جو ہے اس میں کافی تیتے لے کہ یہ چیز بتاگے یہاں کے کسی تری کے سے odbc کو استعمال کرنا ہے. بہت ساتھ ہم کیا جانتے ہیں کہ ہم اس کو دیکھ دے اور ایک اس دیکھ دے اور ایک ویریبل سیو دبلا نگی دیکھ دو جانتے ہیں ملی تو اگر اس خالق ہے تو اگر جانتے ہیں اگر اس خالق دیکھ دے گا اگر ہم کسی خالق نہیں جانتے ہیں then اس خالق ترحانے کے ساتھ ہوتا ہے. اس کے ساتھ ہم کامیج میں آن لئے اور ہم اس میں حیرت لگتے ہیں۔ کیوں کہ دائیں کے ساتھ ہمیں کامیج جانتے ہیں ، ہمیں اس کی اشتراف میں مجھ لگی ہے ، اس کے ساتھ مفارق میں ایک دار جانتے ہیں ، یہ دار جانتے ہیں ، ا Demokraten شہ었어요 ، ہم یہ جاہتی ہیں جنات پر مجھے کیا ہے اس کیلہ جو جس میں یہ براہ گیا یہ اپنی سڑنستی دے رہنا ہے اس سے بڑا کرنا ہے جس میں بہت کامبٹOnly ہم یہ جو سلسل ہے باقی روک کامید سھتے ہیں جو ستا ہوں گے جاہتی ہے جو help my وہ سب کامید شمال کرنے سے بہت کٹا کرنا ہے اس جانہ دن سے بہت کامید سب کامید اس کے اس پر اقل سے بالکل مجھے بیت کامید ہے جس مجھے بہت کامید ہے جو ہم آپ Jessie مجھے پاس کسی خدای طور پر ایک ایک ایکی لینسی دیگی ہے اور اس سے ایک کسی گردی ہے مجھے ایک مجھے لینسی دیگی ہے اور ایک ایک پاس کان کاما کیا بھی اس کالے کیا یہ جب آپ크�ی سخص مجھے اپر programے پہ traditions بھی آف وی ت Frühساہ revvingd چالات ا ін بھی مال د αλλά زیادة کامل هذه может العروح acts keep و معin مون ڈ인 مون عقید فرما زیادہ پر اقرآن آپ کی ذاتتا ہوں ایک دخالسwives اچکس ایک ہے ایک ناظی niet اس bei بہت آپ ہوں ان آپ میں weit پر ا کیونکہ آپ lotوز کامل انے اگر گفت تک ایک مونت plansoires ، administrators کے انابن Native سال myself个 مت ہوں جل کامال السکل بہت بہت بی continue now ready to print the values that we have read from the table so we have this echo table so what we are printing is we are creating a table in html and in the table we have the company name and the contact name so these are the two table headings two columns in the table and now we have this file so what we do is odbc fetch row so we are reading one row at a time from this record set and we store the name in the rs from that record set in that row into this variable comp name and con name that is the company name and the connection name once again using the odbc functions and then we put these values in our table and that will be the html and then you know so all the rows will be all the rows that are extracted from the database in the SQL statement with the help of that SQL statement that we executed earlier on they will be executed and we you know simply put all these values in that table and at the end we close this database connection and you know we have this echo table so we create this dynamic table reading data from the database and putting it on to our html web page so this is one of the main applications of php تو یہاں پر آپ نے یہ دیکھا کہ کس طریقے سے بہت آسانی سے all you have to do is ڈبیزی کے ذریعے آپ دیدہ بیس کا کنیکشن بنائے اس کے بعد آپ SQL کے اپنی statement کو ایکزیکوٹ کریں جو آپ کو رکڈ ملے گا اس رکڈ کے جو آپ نے جو اٹریبورس جو لکھیں ہوئی ہیں جو آپ کو چاہیں ہیں ان کو آپ ایک ایک کر کے ایک روگ اٹھائیں اور آپ ایک جو آپ کو ساملی پولاٹ کیا کلے اور آپ کو دائمیک اس اٹھائیں لئے ایک کامل دیکومنٹ پر دیکش پر پر دیکمل سکتے ہیں جس تری کسی انفرمیشن ہو گی وہ انفرمیشن آپ کے اٹھائیں ہی چلی جائے گی اور بہت آسانی سے آپ کو یہ چیز مل جائے گی جو یہ ایک بہت بڑا میکنوزم ہے بہت بڑی سپورٹ آویلبا لائے جو پی اچھپی نے پوریٹ کی شروع میں اس طرح کی سپورٹ was not easily available. So یہ اس وجہ سے دیتہ بیس سے کافی اسانی سے یہ سروسز آپ کو مل سکتی ہیں اور you can create dynamic web pages in PHP. تو یہ ہم نے دیکھا یہ بہت بڑا ایک مین اس کا function ہے جو PHP کا جس کی وجہ سے لوگ PHP کو use کرتے ہیں. Server side پہ جو scripting استمال کرتے ہیں اور اسانی سے یہ کام کیا رکھتے ہیں. All you have to do is just simply write that SQL statement جو بھی آپ نے جسٹری کسی بھی کام کرنا اور نیچی آپ کا جیسا بھی ڈیٹا بیس ہو اور اگر وہ ڈیٹا بیس odb سے connectivity Provide کرتا ہے تو آپ اس کو استمال کر سکتے ہیں. Otherwise efficiency کے لیے آپ کے پاس توسرے connections بھی available ہیں جو نیٹف connections جسٹری کسی اگر آپ کے پاس Oracle ہے یا ڈیٹا بیس ڈو ہے یا اس ڈیٹا بیس یا کوئی اور informax کیسم کی اپلکیشن ہے یہ جب آپ کے پاس ڈیٹا بیس ہوں تو ان کو directly support بھی available ہے which may be a little bit more efficient لیکن odb سے کے ذریعے جب اگر آپ connections ڈیٹا بیس کریں گے اور اپنہ کام کریں گے تو یہ آپ کو زیادہ جنریک functionality دے گا اور یہ ڈیٹا بیس سے independence آپ کو Provide کرے گا لیکن بہرال یہاں پر odb سے کا دوسرے ڈیٹا بیس اور mechanism سے comparison مقصود نہیں ہے یہ مقصد یہ بتانا کھا کہ کسی تری کیسے آپ ڈیٹا بیس کو populate کر سکتے ہیں اور وہاں ڈیٹا بیس سے information آپ لے سکتے ہیں اور dynamic web pages آپ ڈیٹ کر سکتے ہیں php میں تو یہ اس کا ایک main function ہے php اس کے لعبہ اور بھی چیزوں کو support کرتی ہے جسا کہ exception handling exception handling کا mechanism بھی php میں available ہے اور یہ exception handling کا mechanism بہت حتک ملتا جولتا ہے c++ کے exception handling کے mechanism سے میرے پاس اس وقت گنجائش نہیں ہے کہ میں exception handling کے mechanism میں جاؤں لیکن بس میں یہ کہنا چاہتا ہوں کہ جس طرح c++ میں وہ try catch کے blocks ہوتے ہیں یہاں پر بھی آپ کو اس طرح سے آپ try catch کے blocks پناا کی اور a proper exception handling کے ساتھ اپنے code لکھ سکتے ہیں اور پھر اس کو exception کو properly handle کرنے کے بعد آپ proper error messages اور errors recovery کا mechanism آپ implement کر سکتے ہیں تو یہ ایک important feature ہے php کا تو یہ میری گفتگو basically گفتگو کا php کا خلاصہ تھا php ایک بہت بڑی its میں language ہے library اس کی بہت بڑی available ہے بہت سارا آپ کو code web پے ویسے freely available آپ کو نظر آئے گا you can download and play with that میرے لیے یہ ممکن نہیں ہے کہ اس کی پوری library کا آہتہ میں کر سکوں پوری library کو دیکھ سکوں اور اس کو describe کر سکوں کہ اس میں کون کون سے functions available ہیں اور وہ کس طریقے سے آپ اس کو استوال کرتے ہیں بیس ایک مقصد یہ تھا کہ programming language کے design کے point of view سے ہم اس language کو ستڑی کریں اور دیکھیں کہ اس میں کیا features ہیں اور کیا functionalities ہیں اور کس طریقے سے یہ language آپ کو کس طرح کا کام کرنے میں زیادہ آپ کی معاون اور آپ کی مددگار ثابت ہو سکتی ہے PHP میں جب آپ program لکھیں تو یہ چیز آپ کو یاد رہنے چاہیے کہ PHP ایک dynamic type language ہے اس میں variable کی type بڑی dynamic ہے اور وہ context سے وہ determine ہوتی ہے اور اس کی وجہ سے یہ interpreted language ہے اور اس کی وجہ سے یہ بہت سارے problems جو ہیں جو آپ کو compiled languages میں آپ کو بڑی آسانی سے compiler detect کر لیتا ہے تو یہ language آپ کو وہ problem نہیں بتایا گی اور آپ کی results وہ کافی آپ کو مشکل سے اگر آپ کو غلط آپ کو results آ رہے ہیں تو بازقات بڑی مشکل ہو جاتی ہے کہ ان results کو identify کرنے میں کہ کس وجہ سے آپ کو یہ problem آ رہا ہے تو یہ اس language کے ساتھ کام کرنے کا ایک کچھ فائدہ بھی ہے کیونکہ dynamic لی اگر آپ typing آپ کر سکتے ہیں تو بہت آسانی سے آپ کو variable بگر declare کرنے کی ضرورت نہیں ہے لیکن اگر آپ نے کام بڑا کرنا ہے تو بڑی آسانی سے آپ کام کر سکتے ہیں لیکن اگر آپ نے کام بڑا کرنا ہے تو پھر آپ کے لیے مشکلات پیدا کر سکتی ہے اگلے لیکچر میں انشاء اللہ ہم اگلی a scripting language جعنے کے جاوہ script کا متالعہ شروع کریں گے اور وہ دیکھیں گے کہ وہ اس سے کس طریق سے مختلف ہے اور کیا commonalities ہیں اگلے لیکچر تک کے لیے آپ مجھے اجازت دیجے خدا حافظ اور اسلام علیکم