<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Nima jahan bakhshian</title>
        <link>https://virgool.io/feed/@nima_75</link>
        <description>Back--end developer</description>
        <language>fa</language>
        <pubDate>2026-04-15 06:03:07</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>Nima jahan bakhshian</title>
            <link>https://virgool.io/@nima_75</link>
        </image>

                    <item>
                <title>توابع پرکاربرد آرایه در PHP</title>
                <link>https://virgool.io/codenevis/%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-%D9%BE%D8%B1%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87-%D8%AF%D8%B1-php-lpiayi3ln3zj</link>
                <description>آرایه‌ها یکی از پرکاربردترین و مهم‌ترین ساختار های داده هستند که در آن همه عناصر به صورت متوالی مرتب شده اند، آرایه‌ها متغیرهایی هستند که می‌توانند درون خود مقادیر مختلفی با نوع داده های متفاوتی را تحت یک نام واحد (نام متغییر) نگهداری کنند. در این پست می خواهیم با تعدادی از توابع کار با آرایه در زبان برنامه نویسی PHP آشنا شویم.تابع array_change_key_caseاین تابع تمامی کلید های موجود در آرایه را به lowercase و یا uppercase تبدیل میکند.array_change_key_case(array $array, $case = CASE_LOWER): arrayدر پارامتر اول تابع , آرایه مد نظر را پاس می دهیم و در پارامتر دوم مشخص می کنیم که کلید های آرایه CASE_LOWER باشند یا CASE_UPPERتابع array_key_existsاین تابع آرایه دریافتی را برای پیدا کردن کلید مورد نظر چک می کند و اگر کلید را پیدا کند , مقدار true را برمی گرداند در غیر اینصورت مقدار false را بر می گرداند.array_key_exists(string|int $key, array $array): boolدر پارامتر اول کلید مورد نظر را به تابع پاس می دهیم و در پارامتر دوم آرایه ای را که می خواهیم در آن به دنبال کلید مشخص شده بگردیم پاس می دهیم.تابع array_padاین تابع آرایه ی ورودی در پارامتر اول را بر اساس مقدار مشخص شده در پارامتر دوم با پارامتر سوم پر می کند. این تابع سه پارامتر را دریافت میکند. پارامتر اول آرایه ی ورودی را مشخص می کند. پارامتر دوم تعداد المان های موجود در آرایه نهایی که از تابع برگشت داده می شوند را مشخص می کند و پارامتر آخر مقدار المان های جدیدی که قرار است آرایه ی مشخص شده در پارامتر اول با آن ها پر شوند و از تابع مورد نظر بازگشت داده شوند را مشخص می کند.اگر در پارامتر دوم مقدار منفی را وارد کنیم , مقادیر جدید قبل از مقادیر اصلی تابع وارد می شوند.array_pad(array $array, int $length, mixed $value): arrayتابعarray_randاین تابع یک یا چند کلید را به صورت تصادفی از آرایه مشخص شده باز می گرداند.array_rand(array $array, int $num = 1): int|string|arrayتابعarray_reverseترتیب اعضای آرایه را معکوس می کند و آن را بر می گرداند.array_reverse(array $array, bool $preserve_keys = false): arrayبه پارامتر اول آرایه ای را که می خواهیم ترتیب المان های آن معکوس شوند را پاس می دهیم و در پارامتر دوم تعیین می کنیم که آیا ترتیب کلیدها نیز باید تغییر کند یا خیر. به صورت پیش فرض این پارامتر مقدار FALSE را دارد.تابع array_uniqueمقادیر تکراری (duplicate) را از آرایه حذف می کند. اولین مقدار را نگه می دارد و باقی مقادیر تکراری را حذف می کند.array_unique(array $array, int $flags = SORT_STRING): arrayپارامتر اول آرایه ای را که می خواهیم مقادیر تکراری آن حذف شوند را دریافت می کند و پارامتر دوم که پارامتری اختیاری است نحوه مقایسه مقادیر آرایه را مشخص می کند که یکی از مقادیر زیر را دریافت می کند.SORT_STRING : .مقدار پیش فرض است که مقادیر را به عنوان رشته مقایسه میکندSORT_REGULAR : .مقادیر را به صورت عادی بررسی میکند و دیتا تایپ ها را تغییر نمی دهدSORT_NUMERIC : .آیتم ها را به عنوان عدد مقایسه می کندSORT_LOCALE_STRING : .مقایسه ی آیتم ها بصورت رشته ای بر اساس محل کنونیتابع array_walkیک تابع ارائه شده توسط کاربر را برای هر عضو آرایه اعمال می کند.keys و values آرایه پارامتر های تابع هستند.array_walk(array|object &amp;$array, callable $callback, mixed $arg = null): boolدر پارامتر اول , آرایه مد نظر را مشخص می کنیم , اگر پارامتر اول تابع array_walk را به صورت reference پاس دهیم می توانیم value های آرایه را در تابع تعریفی خودمان عوض کنیم . در پارامتر دوم نام تابعی را که خودمان تعریف کرده ایم را می نویسیم و در پارامتر آخر که پارامتری اختیاری است پارامتر هایی را برای تابعی که خودمان تعریف کرده ایم می نویسیم. این تابع در صورت اجرای موفق عبارت true و در صورت عدم اجرای موفق مقدار false را بر می گرداند.&lt;?php
functioncustomFunction($value,$key)
{
echo &amp;quotkey : $key has the value : $value&amp;quot
}
$array=[&amp;quota&amp;quot=&gt;&amp;quotred&amp;quot,&amp;quotb&amp;quot=&gt;&amp;quotgreen&amp;quot,&amp;quotc&amp;quot=&gt;&amp;quotblue&amp;quot];
array_walk($array,&amp;quotcustomFunction&amp;quot);تابع in_arrayتوسط این تابع می توانیم چک کنیم که آیا مقدار دریافتی در آرایه مدنظر وجود دارد یا نه.پارامتر اول تابع مقداری را دریافت می کند که می خواهیم چک کنیم آیا در آرایه وجود دارد یا نه. پارامتر دوم آرایه مورد نظر را دریافت می کند. اگر پارامتر سوم را به آن پاس بدهیم و مقدار TRUE را قرار دهیم، تابع برای جستجوی مقدار مشخص شده، نوع داده ای آن را نیز بررسی می کند (حالت strict).in_array(mixed $needle, array $haystack, bool $strict = false): boolتابع compact‌آرایه ای از متغییر ها به همراه مقادیر آن ها را ایجاد می کند. این تابع میتواند چندین پارامتر را دریافت کند. هر پارامتر می تواند یک رشته که نام متغیر است یا آرایه ای شامل اسم متغیرهای مورد نظر را دریافت کند.compact(array|string $var_name, array|string ...$var_names): array&lt;?php
 $city  = &amp;quottehran&amp;quot
 $age = 27;
 $job = &amp;quotteacher&amp;quot
 $result = compact(&amp;quotcity&amp;quot, &amp;quotage&amp;quot, &amp;quotjob&amp;quot);
 print_r($result);

output :
[
   [city] =&gt; tehran 
   [age] =&gt; 2
   [job] =&gt; teacher
]در این پست سعی شد که شما را با برخی از تابع کار با آرایه در زبان برنامه نویسی php آشنا کنیم برای مشاهده لیست کامل توابع کار با رشته میتوانید به داکیومنت PHP مراجعه کنید.</description>
                <category>Nima jahan bakhshian</category>
                <author>Nima jahan bakhshian</author>
                <pubDate>Wed, 22 May 2024 09:22:21 +0330</pubDate>
            </item>
                    <item>
                <title>توابع کار با رشته در PHP</title>
                <link>https://virgool.io/codenevis/%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%B1%D8%B4%D8%AA%D9%87-%D8%AF%D8%B1-php-olukhcq9o0ah</link>
                <description>رشته‌ها یکی از پرکاربردترین و مهم ترین data type ها در علم برنامه نویسی هستند. string ها مجموعه‌ای از کاراکترها هستند که شامل : حروف الفبا، اعداد و علامت‌ها هستند که هر کدام از آن ها یک کاراکتر محسوب می‌شوند. پس یک رشته را می‌توان مجموعه‌ای از کاراکترها دانست که توسط Single Quote و یا Double Quote محصور شده اند. در این پست می خواهیم با تعدادی از توابع کار با رشته در زبان برنامه نویسی PHP آشنا شویم.تابع strtokاین تابع رشته دریافتی را Tokenize می کند یعنی بر اساس جداکننده و یا جداکننده های تعیین شده در پارامتر دوم تابع رشته دریافتی در پارامتر اول را به قسمت های کوچک تر تقسیم بندی می کند.strtok(string $string, string $token): string|falseپارامتر اول، رشته مورد نظر را که می خواهیم به قسمت های کوچک تر (Tokens) تقسیم کنیم را دریافت می کند.پارامتر دوم، یک و یا چند جداکننده را برای تقسیم رشته مشخص می کند.تابع lcfirstاولین کاراکتر رشته دریافتی را lowercase می کند.lcfirst(string $string): stringتابع strip_tagsتگ های HTML و PHP موجود در رشته ورودی را حذف می کند.strip_tags(string $string, array|string|null $allowed_tags = null): stringدر پارامتر اول ، رشته ای را که می خواهیم تگ های htmlو php از آن حذف شوند را وارد می کنیم.در پارامتر دوم که پارامتری اختیاری است ، تگ و یا تگ هایی را که می خواهیم حذف نشوند ، وارد می کنیم.تابع chopنام مستعاری برای تابع rtrim است، این تابع whitespaces ها و یا سایر کاراکتر های از پیش تعیین شده را در سمت راست رشته دریافت شده در پارامتر اول حذف می کند.chop(string $string, string $characters = &amp;quot \n\r\t\v\x00&amp;quot): stringپارامتر اول رشته مورد نظر را دریافت می کند.در پارامتر دوم که اختیاری است، کاراکترهایی را که باید از سمت راست رشته مورد نظر پاک شوند، وارد می کنیم.در صورت وارد نکردن پارامتر دوم  تابع، کاراکتر های n\r\t\v\x00\ را حذف می کند.تابع strrevاین تابع رشته دریافتی را معکوس می کند.strrev(string $string): stringتابع substr_countاین تابع تعداد دفعاتی که رشته فرعی (substring) در رشته مورد نظر تکرار میشود را ‌می شمارد.substr_count(string $string, string $substring)در پارامتر اول رشته مورد نظر را برای چک کردن می نویسیم.در پارامتر دوم رشته ای را که میخواهیم آن را search کنیم وارد می کنیم.در این پست سعی شد که شما را با برخی از تابع کار با رشته در زبان برنامه نویسی php آشنا کنیم برای مشاهده لیست کامل توابع کار با رشته میتوانید به داکیومنت PHP مراجعه کنید.</description>
                <category>Nima jahan bakhshian</category>
                <author>Nima jahan bakhshian</author>
                <pubDate>Mon, 29 Apr 2024 14:44:31 +0330</pubDate>
            </item>
                    <item>
                <title>زبان CSS چیست ؟</title>
                <link>https://virgool.io/@nima_75/%D8%B2%D8%A8%D8%A7%D9%86-css-%DA%86%DB%8C%D8%B3%D8%AA-vkzzvkiesrti</link>
                <description>CSSیکی از لایه‌های طراحی وب‌ سایت بعد از html که باید یاد بگیریم لایه CSS است که در این پست می‌خواهیم با هم یک مرور سریع و کوتاهی بر این سؤال که CSS چیست و به چه دردی می خوره رو داشته باشیم. پس با ما همراه باشید.زبان css چیست ؟سی‌ اس‌ اس مخفف عبارت Cascading Style Sheet است. CSS یک زبان style نویسی (Style Sheet Language) است که از آن به‌عنوان ابزاری کمکی برای بهبود و زیباسازی صفحات وب استفاده میشه؛ مثلاً می‌تونیم تمامی خصوصیات ظاهری صفحه وب‌ سایت مانند رنگ، فونت، تصاویر پس‌زمینه، ترازبندی عناصر و ... را به‌صورت دلخواه تنظیم کنیم. یعنی توسط CSS می‌توانیم تعیین کنیم که عناصر موجود در صفحه وب به چه صورتی برای کاربر در مرورگر نمایش داده شوند.تاریخچه CSSزمانی که زبان سی‌اس‌اس (CSS) وجود نداشت ، هر مرورگری قواعد مخصوص به خود رو برای نمایش تگ‌های اچ تی ام ال داشت. پس صفحات وب در مرورگرهای مختلف با ظاهری متفاوت نمایش داده می‌شدند.در سال ۱۹۹۳ میلادی، یکی از اولین مرورگرهای وب یعنی موزاییک (Mosaic) منتشر شد. این مرورگر به‌ خاطر ویژگی‌هایی که داشت به یکی از مرورگرهای غالب آن زمان تبدیل شد. این مرورگر دارای زبان استایل نویسی ای بود که این قابلیت رو برای کاربران فراهم می‌کرد که بتوانند رنگ‌های محدودی را در وب‌ سایت تغییر بدهند. دراین‌ بین Hakon Wium Lie همراه با Dave Ragget، زبان CHSS را برای مرورگر Arena و Bret Bos زبان SSP را برای مرورگر Argo ارائه کردند.در نهایت در سال 1996 ، نسخه اولیه زبان CSS با همکاری Hakon Wium Lie و Tim Berners-Lee به‌ صورت رسمی معرفی شد تا مشکلاتی که طراحان وب در آن زمان با HTML3.2 داشتند را برطرف کند. CSS راه حلی بود که اکثر کاربران HTMLدر آن زمان به دنبال آن بودند. هنگامی که CSS منتشر شد، کاربران می‌توانستند از HTML 4.01 و CSSبا هم برای ساخت صفحات وب از آن استفاده کنند. ایده پشت سی اس اس این بود که ارائه (presentation) و محتوا (content) را از هم جدا کند. مزیت این روش این است که به‌روزرسانی‌ها و تغییرات در ارائه فقط یک‌بار (در کدهای CSS) اعمال می‌شوند تا بر همه صفحات تأثیر بگذارد.ورژن‌های مختلف CSSورژن CSS 1 :اولین نسخه از CSS در سال 1996 همراه با پراپرتی‌های مربوط به فونت، توانایی تغییر رنگ عناصر و بک‌گراند آن‌ها و وجود مفاهیمی چون margin و padding عرضه شد. اما در حال حاضر، این نسخه قدیمی است و توسط W3C پشتیبانی نمی‌شود.ورژن CSS 2 :این نسخه در سال ۱۹۹۸ عرضه شد. دارای و ویژگی‌ها و قابلیت‌های بیشتری نسبت به ورژن قبلی خود بود. در این نسخه کاربران می‌توانستند از ویژگی‌هایی مانند موقعیت‌های relative، absolute، fixed و مفهوم z-index استفاده کنند.ورژن CSS 2.1 :در این نسخه یک سری از باگ‌ها و کمبودهای CSS 2 برطرف شد.ورژن CSS 3 :آخرین نسخه از CSS که توسط w3c در سال 1999 ارائه شد. که در چندین ماژول تقسیم‌بندی‌ شده است که باعث می‌شود کارکردن با این نسخه از CSS آسان‌تر شود.ورژن CSS 4 :در واقع فعلاً استانداردی به نام CSS 4 وجود ندارد؛ زیرا توسعه دهندگان به توسعه و بهبود هرکدام از ماژول‌های موجود در نسخه سه می‌پردازند. و به صورت مداوم آن را بهبود و توسعه میدهند.قواعد نوشتاری زبان CSSهر زبان برنامه‌نویسی دارای یک سری قواعد و اصولی برای نوشتن است که اگر رعایت نشوند باعث بروز خطا می‌شود که زبان برنامه‌نویسی CSS هم از این قاعده مستثنی نیست و دارای قواعد مخصوص به خود است. در css ساختار کد ها از دو قسمت Selector و Declaration تشکیل شده است.بخش Selectorدر بخش selector که به معنی انتخاب‌کننده است. و وظیفه آن انتخاب عنصر یا عناصری است که می‌خواهیم دستورات CSS را روی آن‌ها اعمال کنیم.بخش Declarationبا استفاده از این بخش که در بین {…} قرار می‌گیرد، می‎‌توانیم مشخص کنیم چه استایلی روی تگ‌های انتخاب شده اعمال گردد. این بخش از دو قسمت “property” و “value” تشکیل شده است و همیشه با یک سیمی کالن “;” به پایان می‌رسد که باید مشخص کنیم عنصر انتخاب شده چه ویژگی و چه مقداری داشته باشد.حساسیت به حروف بزرگ و کوچک در CSSنام ویژگی‌های CSS و بسیاری از مقادیر به بزرگی یا کوچکی حروف حساس نیستند. اما برای انتخاب‌گرهای CSS این‌ گونه نیست. به‌ عنوان‌ مثال ، انتخاب‌گر کلاس btn. با BTN. یکسان نیست.</description>
                <category>Nima jahan bakhshian</category>
                <author>Nima jahan bakhshian</author>
                <pubDate>Thu, 11 Apr 2024 20:03:15 +0330</pubDate>
            </item>
                    <item>
                <title>Overloading &amp; Overriding in OOP</title>
                <link>https://virgool.io/codenevis/overloading-overriding-in-oop-ikz8bt4omrly</link>
                <description>Overloading and Overriding دو مفهوم Overloading و Overriding مانند دیگر مفاهیم کلاس ، کپسوله سازی ، چند ریختی و ... در زبان های برنامه نویسی شی گرا هستند که در این پست می خواهیم با این دو ویژگی آشنا شویم.مفهوم Overridingدر مفاهیم شی گرایی ، overriding به معنی تغییر کارکرد یک تابع موجود در برنامه است ، هنگامی که در حال پیاده سازی قابلیت ارث بری در شی گرایی هستیم تمامی متد های کلاس پدر با توجه به سطح دسترسی آن ها در کلاس فرزند هم قابل دسترسی هستند. اگر کلاس فرزند بخواهد پیاده سازی خاص خود را در یکی از متد های کلاس پدر داشته باشد از قابلیت Overriding استفاده می کند.قابلیت Overriding زمانی رخ می دهد که دو متد که یکی در کلاس پدر و دیگری در کلاس فرزند قرار دارد، دارای نام یکسان باشند و تعداد پارامتر آن ها برابر باشد (signature method یکسان داشته باشند) و نوع بازگشتی (return type) یکسانی داشته باشند. این قابلیت به کلاس فرزند اجازه می دهد که پیاده سازی خاص خود را از متدی که در کلاس پدر قرار دارد برای خود داشته باشد.متدی که در کلاس پدر قرار دارد را overridden method می گویند و متدی که در کلاس فرزند قرار دارد را overriding method می گویند. مثلا در زبان PHP بر اساس شی (object) مورد استفاده شده برای فراخوانی متد ، PHP تصمیم میگیرد که کدام متد overridden و یا overriding است.&lt;?php
class parent
 {
   public function greet() { 
     return &#039;Hello!&#039;; 
   }
 }

 class child extends parent
 {
   public function greet() { 
     return &#039;Hi&#039;; 
   }
 }
مفهوم Overloadingدر مفاهیم شی گرایی Overloading به این معنی است که دو و یا چند متد می توانند نام یکسانی داشته باشند، اما پارامتر های آن ها با هم متفاوت باشند. مفهوم Overloading به این توانایی و قابلیت اشاره دارد که از یک شناسه واحد برای تعریف چندین متد از یک کلاس استفاده کنیم که در پارامتر های ورودی و نه لزوما در نوع بازگشتی (return type) متفاوت باشند.در زبان برنامه نویسی PHP واژه Overloading به منظور ایجاد متدها و متغیرهای داینامیک استفاده می شود. این متدها و متغیرها به وسیله متدهای جادویی ( Magic Methods) مانند ( )call__ و ( )callStatic__ ساخته می شوند. &lt;?php

class greet {
  public function __call($name, $arguments) {
       echo &amp;quotCalling object method &#039;$name&#039; &amp;quot. implode(&#039;,  &#039;,  $arguments);
  }

public static function __callStatic($name, $arguments) {
	echo &amp;quotCalling static method &#039;$name&#039; &amp;quot. implode(&#039;, &#039;, $arguments). &amp;quot\n&amp;quot
  }
}

$object = new greet;

$object-&gt;hi(&#039;object context&#039;);
greet::hi(&#039;static context&#039;);
</description>
                <category>Nima jahan bakhshian</category>
                <author>Nima jahan bakhshian</author>
                <pubDate>Wed, 10 Apr 2024 23:25:20 +0330</pubDate>
            </item>
            </channel>
</rss>